\ n文件中EOF前的字符导致问题

时间:2011-04-03 13:57:47

标签: c newline eof

我手动将一些数据写入文件,而不是我的应用程序。

我的代码是通过char读取数据char并将它们存储在不同的数组中但是当我插入条件EOF时我的程序卡住了。

经过一番调查后,我发现在EOF之前的文件中有三到四个\n个字符。我没有插入它们。我不明白为什么他们在我的档案里。

2 个答案:

答案 0 :(得分:1)

想要删除那些讨厌的额外字符?首先,查看文件末尾有多少个:

od -c <filename> | tail

然后,删除许多你不喜欢的字符。如果是3:

truncate -s -3 <filename>

但总的来说,如果是我,我会更改我的程序以丢弃不需要的换行符,除非它们根据输入文件格式规范真的无效。

答案 1 :(得分:1)

  1. 在每个文本编辑器中向文件末尾添加其他换行非常容易。你必须推动光标才能看到它们。在您的编辑器中打开您的文件,看看当您导航到最后时会发生什么,您将看到额外的换行符。

  2. 一般来说,没有EOF角色。在某些情况下,Windows将control-Z视为EOF。也许您正在讨论某些API的返回值,表明它已到达文件末尾?