我最近发现使用fgetc(),fscanf()
(C中的常用函数来扫描字符)读取SUB字符(ASCII code 26)会使它们都将其解释为错误并返回EOF。我想知道是否有任何方法可以检测SUB字符,以便我可以区分真实的'文件结尾和明显的文件。
注意:我目前的结论是使用扫描错误检测到文件结尾,因为SUB字符用于表示任务看起来不可能出错。但是由于记事本似乎正确地阅读了它,我期待一些使用C语言的技术,我不熟悉。
答案 0 :(得分:2)
以二进制模式打开文件。
...fopen("filename", "rb")...
不要忘记库代码不再以二进制模式转换“换行符”。如果文件与结束行有"\r\n"
对,则在阅读文件时,您会同时获得'\r'
和'\n'
。