在C语言中,如何编写适合操作系统的行尾字符?
Unix有\n,Mac是\r但现在是\n,DOS/Win32是\r\n。当使用C创建文本文件时,如何确保使用适合操作系统的行尾字符在C语言中,如何编写适合操作系统的行尾字符?,c,portability,C,Portability,Unix有\n,Mac是\r但现在是\n,DOS/Win32是\r\n。当使用C创建文本文件时,如何确保使用适合操作系统的行尾字符 fprintf(your_file, "\n"); 如果您以文本模式打开文件,则操作系统上的stdio库会将该文件转换为适当的EOL。在二进制模式下,不会发生转换。来自维基百科: 以文本模式写入文件时,'\n' 将透明地转换为 用户使用的本机换行符序列 系统,可能比一个长 性格(请注意 实现不允许存储 文件中的换行符。用于 例如,文本文件的行 可以存储为SQL表的
fprintf(your_file, "\n");
如果您以文本模式打开文件,则操作系统上的stdio库会将该文件转换为适当的EOL。在二进制模式下,不会发生转换。来自维基百科:
以文本模式写入文件时,'\n'
将透明地转换为
用户使用的本机换行符序列
系统,可能比一个长
性格(请注意
实现不允许存储
文件中的换行符。用于
例如,文本文件的行
可以存储为SQL表的行
或作为固定长度记录。)当
以文本模式阅读,本机
换行符序列被转换回
“\n”。在二进制模式下,第二种模式
由C库支持的I/O数量,否
执行翻译,并且
任何转义的内部表示
序列直接输出
以文本模式打开文件时(将“w”传递给
fopen
而不是“wb”),写入文件的任何换行符都将自动转换为系统的相应换行序列。读取文件时,换行符序列将转换回换行符
这就是为什么区分文本和二进制模式很重要;如果您是在二进制模式下写入,C将不会篡改您写入文件的字节。+1如果文件是在文本模式下打开的,请提及文本文件和二进制文件之间的区别(并提醒我!)。我应该从一开始就把它包括进去。现在更新了。询问者明确地谈到了文本文件。