c语言 C语言fgets怎么检测到文件末尾的?返回NULL,检测到结尾换行符就结束了吗?
浏览量:1835
时间:2021-03-17 02:39:50
作者:admin
C语言fgets怎么检测到文件末尾的?返回NULL,检测到结尾换行符就结束了吗?
c语言中fgets的返回值类型?
1。如果成功,此函数将返回相同的str参数。如果到达文件末尾或未读取任何字符,STR的内容将保持不变,并返回空指针。如果发生错误,则返回空指针。如果读取字符时遇到文件结尾,将设置EOF指示符。如果在读入任何字符之前发生这种情况,流将保留原始内容并返回null。2如果发生读入错误,将设置错误指示符并返回null,并且可以更改流的值。如果文件中的行少于n-1个字符,则该行的读取结束。如果行中的字符数(包括最后一个换行符)超过n-1,fgets只返回不完整的行。但是,缓冲区总是以空字符结束,对fgets的下一个调用将继续读取该行。函数在成功时返回stream,在失败时或在文件末尾返回null。因此,不能直接用fgets的返回值来判断函数是否因错误而终止,应该用feof函数或feror函数来判断。
c语言执行fgets时,如何判断是否到了文件末尾?
如果文件末尾有空行,请特别注意使用fgets读取文件,例如:aaa234444bbbb123kkkk900000000ccc34。如果结尾没有空行,即没有n,fgets在读取ccc34行时遇到EOF,如果结尾有空行,则返回end,STR=“ccc340”;fgets在读取ccc34行时遇到newline,STR=“ccc34n0”,文件不读取返回EOF。当fgets再次遇到EOF时,fgets返回null。STR的内容不变。因此,最好使用fgets来判断是否应该在读取时结束:while(fgets(…){…}而不是while(!Feof()){fgets()…}
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。
下一篇
微信神器 微信推广神器