百度
360搜索
搜狗搜索

fgets函数返回值,关于C语言fgets()读取文件?详细介绍

本文目录一览: c语言中fgets函数的返回值,什么情况下返回空指针。

获取失败或者读取到文件末尾返回NULL
fgets 是系统输入函数,从文件流读入一行字符串,含空格键等,函数原型是:
char * fgets ( char * str, int num, FILE * stream );
输入成功时,返回 char 型指针,指向 读入的字符串内容,含换行键(gets 类似,但不含换行键)。
输入失败时,返回 NULL。(与此同时 ,自动设置了 feof, ferror 的状态标志)。

c语言中的fgets函数。

从流中读一行或指定个字符,
原型是char*fgets(char*s,intn,file*stream);
从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回null。
形参注释:*string结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针
fgets的返回值是个指针,*fgets(buffer,100,stdin)就是取返回指针所指向地址的第一个字符,fgets的返回值是char*.要是输入一串字符,返回的第一字符一定不是\n如果要是一个空行,第一个一定是\n,所以会推出循环,如果while中的两个条件都满足,就会进入循环继续计算
函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为:
fgets(字符数组名,n,文件指针);
其中的n是一个正整数。表示从文件中读出的字符串不超过
n-1个字符。在读入的最后一个字符后加上串结束标志'\0'。
1)
在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束。
2)
fgets函数也有返回值,其返回值是字符数组的首地址。

这里是特殊情况。
initial这个数组长度只有2,
读进来一个数据就满了(因为第二个位置要写0呢。
所以后面的回车没被读进来,因为缓冲区满了。
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吗?还是说只有读取

可以辅助判断:if ( !feof(fp) ) { if ( fgets(buffer,256,fp)==NULL ) break; ... }
关于 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); /* 关闭文件 */
}

C语言问题,请教这个fgets为什么会返回null

fgets函数原型char *fgets(char *buf, int bufsize, FILE *stream);参数*buf: 字符型指针,指向用来存储所得数据的地址。bufsize: 整型数据,指明存储数据的大小。*stream: 文件结构体指针,将要读取的文件流。含义:从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。函数成功将返回buf,失败或读到文件结尾返回NULL。用法:
#include

#include

int main ( void ){ FILE*stream; char string[]="This is a test"; char msg[20]; stream=fopen("tmp.dat","w+"); fwrite(string,strlen(string),1,stream); fseek(stream,0,SEEK_SET); fgets(msg,strlen(string)+1,stream); printf("%s",msg); fclose(stream); return 0;}

C语言里fgets函数怎么用?

fgets(由文件中读取一字符串)
  表头文件
  include

  定义函数

  char * fgets(char * s,int size,FILE * stream);

  函数说明

  fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。

  返回值

  gets()若成功则返回s指针,返回NULL则表示有错误发生。

  范例

  #include

  main()

  {

  char s[80];

  fputs(fgets(s,80,stdin),stdout);

  }

  执行

  this is a test /*输入*/

  this is a test /*输出*/

求助~c语言fgets()怎么写啊

#include

#include

int main(void)

{

FILE *stream;

char string[] = "This is a test";

char msg[20]; /* open a file for update */

stream = fopen("DUMMY.FIL", "w+"); /* write a string into the file */

fwrite(string, strlen(string), 1, stream); /* seek to the start of the file */

fseek(stream, 0, SEEK_SET); /* read a string from the file */

fgets(msg, strlen(string)+1, stream); /* display the string */

printf("%s", msg);

fclose(stream);

return 0;

}

fgets函数用来从文件中读入字符串。fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存放在字符串的起始地址;n是一个int类型变量。函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。因此,确切地说,调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在最后加'\0',并以str作为函数值返回。

int main()

{

FILE *pf=fopen("1.MP3","rb");

FILE *pf1=fopen("2.MP3","wb");

char buf[1024];

while(!feof(pf))

{

memset(buf,0,1024);

fread(buf,1,1024,pf);

fwrite(buf,1,1024,pf1);

}

fclose(pf);

fclose(pf1);

return 0;

}

你在试下,肯定行!

fgets函数的作用是从指定文件读入一个字符串。例如:

fgets(str,n,fp);

n为要求得到的字符,但只从fp指向的文件输入n-1个字符,然后在最后加一个'\0'字符,因此得到的字符串共有n个字符,把他们放到字符数组str中。如果在读完n-1个字符之前遇到换行符或EOF,读入结束。fgets函数返回值为str的首地址。

fputs函数的作用是向指定的文件输入一个字符串。例如:

fputs("China",fp);

把字符串“China”输出到fp指向的文件。fputs函数中第一个参数可以是字符串常量、字符数组名或字符型指针。字符串末尾的'\0'不输出。若输出成功,函数值为0;失败时,为EOF。

还有在使用完一个文件后应该用fclose函数关闭它,否则会造成文件丢失数据。

另外,站长团上有产品团购,便宜有保证

阅读更多 >>>  结构体数组做函数参数,在函数中为啥使用结构体指针数组,为其赋值赋不上,(申请了空间),在main函数中可以赋值

关于C语言fgets()读取文件?

你的第二行应该没有回车加换行的,文件结尾有EOF,至于怎么读取三个字符的不用深究吧,有输入缓冲区
。fgets()在到达行末时停止
1、fgets函数:
原型:char
*
fgets(char
*
buf,
int
bufsize,
file
*
stream);
功能:从文件结构体指针stream中读取数据,每次读取一行;
说明:读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋值为\0)。如果该行不足bufsize个字符,则读完该行就结束,如果该行超过bufsize-1个字符,则fgets只返回一个不完整的行,buf缓冲区以\0字符结束,下一次fgets调用会继续读取该行剩余的字符;
头文件:stdio.h;
返回值:若读入成功,返回与参数buf相同的字符指针,若读入过程中遇到eof或发生错误,返回null指针。所以当遇到返回值为null的情况时,应使用ferror或feof函数检查是发生错误还是遇到eof。
2、例程:
#include
int a;
char b,c[100];
int main(){
file * fp1 = fopen("input.txt", "r");//打开输入文件
file * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp1==null || fp2==null) {//若打开文件失败则退出
puts("不能打开文件!");
rturn 0;
}
fscanf(fp1,"%d",&a);//从输入文件读取一个整数
b=fgetc(fp1);//从输入文件读取一个字符
fgets(c,100,fp1);//从输入文件读取一行字符串
printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
fputs(c,fp2);//向输出文件写入一行字符串
fputc(b,fp2);//向输出文件写入一个字符
fprintf(fp2,"%d",a);//向输出文件写入一个整数
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}
fgets(buffer,4,read);从流中读取buf_size-1个字符,除非读完一行,这边就是4-1=3啦
最后一个是'\0'

fgets函数用法

fgets函数用法有:数据类型、变量赋值、控制流、函数定义、模块导入。
1、数据类型:fgets支持各种数据类型,包括数字、字符串、列表、元组、集合和字典等。
2、变量赋值:fgets中的变量可以直接进行赋值,不需要事先声明变量类型。例如:x=5。
3、控制流:常用的控制流结构包括if语句、for循环和while循环。可以使用缩进来表示代码块。
4、函数定义:可以使用def关键字定义函数,因为函数可以接受参数,并返回一个值。
5、模块导入:fgets中可以使用import语句导入模块,从而使用模块中的函数和变量等。

fget函数怎么用。菜鸟请教。。。

fgets函数用来从文件中读入字符串。fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存放在字符串的起始地址;n是一个int类型变量。函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。因此,确切地说,调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在最后加'\0',并以str作为函数值返回。

网站数据信息

"fgets函数返回值,关于C语言fgets()读取文件?"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:fgets函数返回值,关于C语言fgets()读取文件?的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!