我已经手动将一些数据写入文件,即不是通过我的应用程序。
我的代码是逐字符读取数据并将它们存储在不同的数组中,但是当我插入条件 EOF 时我的程序卡住了。
经过一番调查,我发现在 EOF 之前的文件中有三到四个\n
字符。我没有插入它们。我不明白为什么它们在我的文件中。
想要删除那些讨厌的额外字符吗?首先,查看文件末尾有多少个:
od -c <filename> | tail
然后,删除您不喜欢的许多字符。如果是 3:
truncate -s -3 <filename>
但总的来说,如果是我,我会更改我的程序以丢弃不需要的换行符,除非根据输入文件格式规范它们确实无效。
在每个文本编辑器中向文件末尾添加额外的换行符非常容易。您必须四处推动光标才能看到它们。在编辑器中打开文件,看看导航到最后会发生什么,你会看到额外的换行符。
一般来说,没有像 EOF 字符这样的东西。在某些情况下,Windows 将 control-Z 视为 EOF。也许您正在谈论某些 API 的返回值,表明它已到达文件末尾?