是冲刺,冲刺..根据 C 标准在 Windows 上合法的功能
Are fprintf, fputs... functions on windows legal according to the C standard?
我想知道:为什么使用标准库写入文件会将您的n
转换为rn
?是C99
的标准行为还是MS
添加的"妥协"?如果它是标准的,按照旧的Apple惯例(r)
,将"toton"
写入文件会"totor"
吗?这里的当前行为是否允许您读取 UNIX 文件,但 UNIX 无法读取您的文件?(我喜欢阴谋论)
-
为什么使用标准库写入文件会将 转换为 \r?
这是为了使代码更具可移植性;你可以在程序中使用
n
,让它在UNIX,Windows,Mac和其他所有东西上运行。 -
这是 C99 的标准行为还是 MS 添加的"混合"?
是的,这是标准的。
-
如果它是标准的,使用旧的Apple约定(\r),将"toto"写入文件会写"toto\r"吗?
是的,翻译行尾字符是预期的。
-
这里的当前行为是否允许您读取 UNIX 文件,但 UNIX 无法读取您的文件?
不,没有阴谋。
来自 C11 规范 §7.21.2 流,¶2:
。可能必须在输入和输出中添加、更改或删除字符,以符合在主机环境中表示文本的不同约定。因此,流中的字符与外部表示中的字符之间不需要有一对一的对应关系。。
如果您不希望出现此行为,请将文件作为二进制流而不是文本流打开。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 多态性和功能结合
- 带内存和隔离功能的SQLite
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 类模板的成员功能的定义在单独的TU中完全专业化
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何在C++中获得"静态纯虚拟"功能?
- 两个文件使用彼此的功能-如何解决
- 我应该实现右值推送功能吗?我应该使用std::move吗
- QML按钮点击功能执行顺序
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 有没有可能有一个只有ADL才能找到的非好友功能
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 文件系统:复制功能的速度秘诀是什么
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 如何在Directwrite中获得给定字体的可用OpenType功能
- 对可变参数使用声明.如何选择正确的功能
- 询问在设计我的手臂模拟器功能表示格式1
- 功能原型的目的
- 是冲刺,冲刺..根据 C 标准在 Windows 上合法的功能