时间:2022-12-16 09:31:12 | 栏目:C代码 | 点击:次
fgets()函数和gets()函数一样,都是读取字符串,不过gets()函数通常用来从键盘读取输入的字符串,fgets()函数可以通过文件来读取字符串。下面通一个例子来演示fgets()函数的使用方法。
int main() { FILE *in,*out; int ret; char ch; char str1[30],str2[30],str3[30]; /* 打开文件 */ in = fopen("123.txt","r"); if(in == NULL) puts("打开失败!"); else puts("打开成功!"); fgets(str1,10,in); puts(str1); /* 关闭文件 */ ret = fclose(in); if(ret == 0) puts("关闭成功!"); else puts("关闭失败!"); system("pause"); return 0; }
通过fopen()函数打开123.txt文件,然后使用fgets()函数从文件中读取字符串,然后将读取到了字符串打印出来。这里fgets()函数里面有三个参数,第一个参数用来存储读取的字符串内容,第二个参数是需要读取的字节数,第三个参数是待读取的文件指针。
从123.txt文件中读取10个字符打印出来,由于第10个字符是空格,所以打印出来的字符串只能看到9个字符。如果将fgets()函数的第二个参数改大,就可以读取更多的字符内容了。
将读取的字符数量修改为30,就会打印出123.txt文件中全部内容。如果修改fgets()第三个参数为stdin,那么fgets()函数就可以通过键盘读取字符串。
将第三个参数修改为stdin,从标准输入设备中读取数据,也就是从键盘读取。运行程序后,通过键盘输入一组字符串,按下回车键之后,就会打印出刚才输入的字符串。
fputs()函数,可以用来向文件中写入一个字符串。示例如下:
int main() { FILE *in,*out; int ret; char ch; char str[]="abc 123 def 456"; char str1[30],str2[30],str3[30]; /* 打开文件 */ in = fopen("123.txt","w"); if(in == NULL) puts("打开失败!"); else puts("打开成功!"); fputs(str,in); /* 关闭文件 */ ret = fclose(in); if(ret == 0) puts("关闭成功!"); else puts("关闭失败!"); system("pause"); return 0; }
以写模式打开123.txt文件,然后使用fputs()函数向文件内写入一个字符串。fputs()函数有两个参数,第一个参数是待写入的字符串,第二个参数是待写入的文件指针。
运行程序后打开123.txt文件,可以看到文件中以前的内容已经被新的字符串覆盖了。这是因为打开文件的时候,是以只写的方式打开的,它会将文件中以前的内容清空,如果向文件中写入内容的时候,不希望清空以前的内容,那么打开文件的时候就需要以追加的形式打开。比如修改打开文件代码:
in = fopen("123.txt","a+");
程序执行完之后,打开123.txt文件,可以看到刚才写入的字符串还在,新添加的字符串紧跟在原来的字符串后面。如果想要新添加的内容再下一行,在添加内容的时候在字符串中可以加上回车换行的转义字符。