当前位置:  开发笔记 > 运维 > 正文

在Windows和Linux中使用fscanf时,行尾不同的字符

如何解决《在Windows和Linux中使用fscanf时,行尾不同的字符》经验,为你挑选了1个好方法。

当我读到fscanf:

 nscan = fscanf(input_file, "%30[^,], %d, %lf, %d%c",
                array[i].epwnymo, &array[i].ypolipo,
                &array[i].epitokio, &array[i].meromhnia, &termch);

termch应该是\n,但在Linux中,我得到了\r哪些使我的程序给出了错误的结果.我已经阅读过某个窗口\n,\r\n但是,为什么我会\r进入Linux?



1> 小智..:

这在技术上不是C问题,因为你会在所有编程语言中注意到同样的事情.

如果您已经将文件直接从Windows复制到Linux而没有转换换行符(FTP通过选择TEXT或ASCII传输模式为您提供了这样做的选项),那么您的Linux程序可以看到'\r'字符是有意义的; 这些通常会被翻译为"\r\n"Windows中序列的一部分,但Linux不会自动执行此类转换.

我建议,当您将文本文件从Windows复制到Linux时,您运行dos2unix以转换这些文本文件(除非您使用的FTP客户端为您执行此转换)...同样,当您复制时从Linux到Windows的文本文件,你应该使用unix2dos(再次,除了FTP场景).

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有