c语言 c语言执行fgets时,如何判断是否到了文件末尾?

c语言执行fgets时,如何判断是否到了文件末尾?C语言fgets函数读取文件,为何以行判断字符串结束?fgets有三个参数。第二个参数是传入空间的大小,即第一个参数指向的大小。如果第二个参数值为n,

c语言执行fgets时,如何判断是否到了文件末尾?

C语言fgets函数读取文件,为何以行判断字符串结束?

fgets有三个参数。第二个参数是传入空间的大小,即第一个参数指向的大小。如果第二个参数值为n,fgets将在实际读取的字符数为n-1或遇到换行符时结束读取。注意,它是n-1,因为您想留下一个字符来放置结束字符0,所以您第一次调用n=8,实际读取7“15b 18”,其中有两个空格。第二次,n=4,实际读入三行,第三次,n=4,但在读入时遇到一个换行符,所以只读入一个换行符并返回,结果是“n”第四次,n=4,实际读入三个“166”,第五次,n=8,只读入一个换行符,第六次,n=6,实际读入16,遇到一个换行符,我读了三个“16n”字,都符合规定。我觉得你很困惑,因为你没有正确理解第二个参数。

C语言fgets怎么检测到文件末尾的?返回NULL,检测到结尾换行符就结束了吗?

C语言fgets函数读取换行符吗?

你好,我是艾晓旭。我很高兴为你回答。fgets函数从文件中读取“n”并存储它。在“n”之后,它添加另一个“0”以形成一个字符串。但是,fgets函数需要指定要读入的字符数。如果指定n,则最多只能读取n-1个字符。Fgets在读取n-1个字符、读取“n”或遇到EOF时结束读取。比较专业的理科知识,欢迎关注我。如果你喜欢我的回答,也请给我表扬或转发,你的鼓励是支持我写下来的动力,谢谢。