c语言fgets函数返回值问题,要是读到一串字符的末尾,那么函数返回值是NULL吗?还是说只有读取

c语言fgets函数返回值问题,要是读到一串字符的末尾,那么函数返回值是NULL吗?还是说只有读取c语言fgets函数返回值问题,要是读到一串字符的末尾,那么函数返回值是NULL吗?还是说只有读取到文件末尾才返回NULL,从键盘输入与从文件输入不同。

关于 C 语言中的 fgets( ) 函数,该函数的作用就是从文本文件中读取一行文本内容。该函数执行成功将返回读入的字符串 buffer,读取失败或读到文件结尾返回NULL。
例如如下代码:
#define MAX 300
void main( )

{
unsigned char buffer[MAX] ;
FILE * fpr ;
fpr = fopen("my_text.txt","r);
if( fpr == NULL ) /*文本文件打开失败,则退出 */
{
printf("File open error !\n");
exit(1);
}
fgets(buffer,MAX, fpr); /* 从文本文件中读取一行数据 */
while( ! feof(fpr) ) /* 当文本文件未结束时 */
{
printf("buffer is: %s", buffer) ; /* 输出刚刚读取的文本文件的内容 */

fgets(buffer,MAX,fpr); /* 继续读取下一行数据 */
}
fclose(fpr); /* 关闭文件 */
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-25
可以辅助判断:if ( !feof(fp) ) { if ( fgets(buffer,256,fp)==NULL ) break; ... }
相似回答