【发布时间】:2020-09-05 15:45:53
【问题描述】:
我正在阅读具有这种格式的文本文件:
DUMMY,0000000000000100100000000000000000
JOHNDOE,0000000000000010000000100000000100
FOO,0000000000000000000000000100000000
BAR,1000000100000000000000000000000000
当像这样使用 fget 时:
while (fgets(line, linelength, stream) != NULL) {
...
}
它总是在第一行出现三个垃圾字符。我尝试使用纯文本编辑器删除第一行,只是为了测试文本之前没有类似不可打印的字符,但没有结果。它们总是相同的三个字符。第一行,当 fgets 读取时,在 Visual Studio 调试控制台中如下所示:
DUMMY,0000000000000100100000000000000000
使用 printf 在终端显示时,如下所示:
DUMMY,0000000000000100100000000000000000
如上所述,如果我删除输入文件的第一行,那么下一行也有相同的字符:
JOHNDOE,0000000000000010000000100000000100
有趣的是,如果我将一个空行作为输入文件中的第一个行,一切似乎都正常。
【问题讨论】:
-
hexdump文件。并提供minimal reproducible example。 -
请尝试创建minimal reproducible example 向我们展示。
-
你如何创建或编辑这个文本文件?你如何保存它?你可以用BOM将它保存为UTF-8吗?