c - 为什么当我们在文件中写入\n 时它会转换为\r\n 组合?

标签 c newline fgets fputs

我从书中读到这个概念,当我们尝试使用 fputs() 将\n 写入文件时,fputs() 将\n 转换为\r\n 组合,然后如果我们使用 fgets 读回同一行( ) 发生反向转换意味着\r\n 返回转换为\n。 我不明白这背后的目的是什么?

最佳答案

这是因为 Windows(和 MS-DOS)文本文件应该有以\r\n 结尾的行,而可移植的 C 程序应该简单地使用\n,因为 C 最初是在 Unix 上定义的。

而且不仅仅是 fputs 和 fgets 可以执行此操作 - 文本文件上的任何 I/O 函数,甚至 getc 和 fread,都将执行相同的转换。

关于c - 为什么当我们在文件中写入\n 时它会转换为\r\n 组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19839883/

相关文章:

c - 我无法写直方图

arrays - 我可以使用 read 内置函数将换行符分隔的字符串放入数组中吗?

支持箭头键的标准输入跨平台输入解决方案?

c - 在 C 中比较字符串时,fgets 比 scanf 更有效吗?

c - 如何访问 Rust 中的 C 常量?

c - C语言中的限定符是什么?

c - 在 Delphi 中调用 C++ DLL 的问题

regex - 在代码块中查找字符串(正则表达式)

python - 从多行字符串中剥离 "\n",内联时除外

c - scanf 和 fgets 的问题