点击上方蓝字关注我,了解更多咨询
C语言 fgets() 函数从文本文件中读取一个字符串,并将其保存到内存变量中。fgets() 函数位于 <stdio.h> 头文件中,其使用格式如下:
fgets(字符串指针,字符个数n,文件指针);
格式说明:
第 1 个参数“字符串指针”可以是一个字符数组名,也可以是字符指针,用于存放读出的字符串;
第 2 个参数是一个整型数,用来指明读出字符的个数;
第 3 个参数“文件指针”指向一个已经打开并正在操作的文件。
功能:从文件指针所指向的文本文件中读取长度不超过 n-1 的字符串,并在结尾处加上“\0”组成一个字符串,存入“字符串指针”中。
若函数调用成功,则返回存放字符串的首地址;若读到文件结尾处或调用失败时,则返回字符常量 NULL。
例如,语句 fgets(char*s,int n,FILE*fp);的含义是从 fp 指向的文件中读入 n-1 个字符,存入字符指针 s 指向的存储单元。
当满足下列条件之一时,读取过程结束。
已读取了 n-1 个字符。
当前读取的字符是回车符。
已读取到文件末尾。
示例
应用 fgets() 函数和 fputs() 函数建立一个文本文件,读取文件中的内容并在屏幕上显示。代码如下:
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
int main()
{FILE *fp1,*fp2; /*定义两个文件指针变量fp1,fp2*/char str[10];if((fp1=fopen("file2.txt","w"))==0) /*以只写方式新建文件file2.txt,并测试是否成功*/{printf("不能创建文件\n");exit(0); /*强制退出程序*/}printf("输入字符串(以空串作为结束输入):\n");gets(str); /*接收从键盘输入的字符串*/while(strlen(str)>0){fputs(str,fp1);fputs("\n",fp1); /*在文件中加入换行符作为字符串分隔符*/gets(str);}fclose(fp1); /*写文件结束,关闭文件*/if((fp2=fopen("file2.txt","r"))==0) /*以只读方式新建并打开文件file2.txt,测试是否成功*/{printf("不能打开文件\n");exit(0);}printf("输出字符串:\n");while(fgets(str,10,fp2)!=0) /*从文件中读取字符串并存放到字符数组str中,测试是否已读完*/printf("%s",str); /*把数组str中的字符串输出到屏幕上*/printf("\n"); /*换行*/fclose(fp2); /*关闭文件*/
}
运行结果:
输入字符串(以空串作为结束输入):
www.weixueyuan.net
123456!
输出字符串:
www.weixueyuan.net
123456!
本程序中定义了两个文件指针 fp1 和 fp2,分别用于写文件和读文件的操作。读者要熟悉 fgets() 函数和 fputs() 函数的使用。
第 15 行的“strlen(str)>0”
语句用于测试从键盘输入的字符串是否为空串(即只输入回车符)。
END
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。
戳“阅读原文”我们一起进步