重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
-----------------------------------------------------------------------------------------------------------------------
我们提供的服务有:网站设计制作、网站建设、微信公众号开发、网站优化、网站认证、南沙ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的南沙网站制作公司
fgets函数原型如下:
char *fgets(char *s,int n,FILE *stream);
它一次从文件中读取一行,包括换行符,放入字符串s中,并且加上字符串结束标志符'\0'。参数n代表缓冲区s中最多能容纳多少个字符(不算结尾标志符'\0')。
fgets函数返回一个char类型的指针,和s指向同一个地方。如果在没有数据可以读取,那么函数就返回NULL。
----------------------------------------------------------------------------------------------------------------------
下面的程序将文本文件students.txt的内容依次读到字符串s中输出
#includestdio.h
#includestdlib.h
#define MAX 200
int main()
{
FILE *fpSrc;
char szLine[MAX];
fpSrc=fopen("students.txt","r");
//文件要指明路径
if(NULL==fpSrc)
{
printf("文件读取失败!");
exit(1);
}
while(fgets(szLine,MAX-1,fpSrc))//从文件中读取一行写入到字符串szLine中,直到fgets函数返回NULL
printf("%s\n",szLine);//打印出读取的内容
fclose(fpSrc);//关闭文件流
return 0;
}
当然有可能溢出,一般来说不会声明一个字符变量,然后把读取的一段数据往一个字符变量所在的地址放(那字符变量后面的内存不是都被盖了?),正确的用法是malloc一段大小的内存,一次读取的大小不超过这段内存的大小,这样才安全。
fgets(由文件中读取一字符串)
表头文件
includestdio.h
定义函数
char * fgets(char * s,int size,FILE * stream);
函数说明
fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。
返回值
gets()若成功则返回s指针,返回NULL则表示有错误发生。
范例
#includestdio.h
main()
{
char s[80];
fputs(fgets(s,80,stdin),stdout);
}
执行
this is a test /*输入*/
this is a test /*输出*/