c语言中的fgets函数fgets()函数用于从文件流中读取一行或指定个数的字符,读取失败或读到文件结尾返回NULL,那么函数返回值是NULL吗还是说只有读取关于 C 语言中的 fgets( ) 函数,从文件流读入一行字符串,返回读取到的字符串,该函数执行成功将返回读入的字符串 buffer,失败或读到文件结尾返回NULL,因此我们不能直接通过fgets()的返回值来判断函数是否是出错而终止的。
c语言中的fgets函数
fgets()函数用于从文件流中读取一行或指定个数的字符,其原型为:
char
*
fgets(char
*
string,
int
size,
FILE
*
stream);
参数说明:
string为一个字符数组,用来保存读取到的字符。
size为要读取的字符的个数。如果该行字符数大于size-1,则读到
size-1
个字符时结束,并在最后补充’
\0’;如果该行字符数小于等于
size-1,则读取所有字符,并在最后补充
’\0’。即,每次最多读取
size-1
个字符。
stream为文件流指针。
【返回值】读取成功,返回读取到的字符串,即string;失败或读到文件结尾返回NULL。因此我们不能直接通过fgets()的返回值来判断函数是否是出错而终止的,应该借助feof()函数或者ferror()函数来判断。
注意:fgets()与gets()不一样,不仅仅是因为gets()函数只有一个参数
FILE
*stream,更重要的是,fgets()可以指定最大读取的字符串的个数,杜绝了gets()使用不当造成缓存溢出的问题。
c语言fgets函数返回值问题,要是读到一串字符的末尾,那么函数返回值是NULL吗还是说只有读取
关于 C 语言中的 fgets( ) 函数,该函数的作用就是从文本文件中读取一行文本内容。该函数执行成功将返回读入的字符串 buffer,读取失败或读到文件结尾返回NULL。
例如如下代码:
#define MAX 300
void main( )
{
unsigned char buffer ;
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); /* 关闭文件 */
}
c语言中fgets函数的返回值,什么情况下返回空指针
fgets 是系统输入函数,从文件流读入一行字符串,含空格键等,函数原型是:
char * fgets ( char * str, int num, FILE * stream );
输入成功时,返回 char 型指针,指向 读入的字符串内容,含换行键(gets 类似,但不含换行键)。
输入失败时,返回 NULL。(与此同时 ,自动设置了 feof, ferror 的状态标志)。
-fgets返回值