fputs与fgets的简单运用:
从终端输入数据,将数据写入文本中,换行输入,文本内容换行显示,接着将文本内容读取显示在终端上
了解fputs():是将一行字符串写入文本中。
了解fgets():是读取文本中一行字符串。
这里要注意的是换行的问题,由于scanf()函数在函数返回的时候是将换行符留在了缓存区,所以,这里要用strcat()函数将字符串"\n"拼接起来,这样就相当于举个例子:"aaaaa\n"的效果。
另外,还要注意就是每打开文件进行操作是,在结束时都因该要关闭文件。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 50
int main()
{
char ch[N];
FILE *pf;
if((pf = fopen("D:\\xi.txt","wb"))== NULL)
{
printf("文件打开错误!\n");
exit(0);
}
else{
while(scanf("%s",ch)!=EOF) //这里在终端的输入是 ctrl + z +enter结束
{
strcat(ch,"\n"); //这里用strcat等同于例如:"adsdsd\n",在末尾有个换行符,这样在文本中写入的内容也是换行的
fputs(ch,pf);
}
fclose(pf); //要注意的是,打开文件进行操作的,不使用的时候就要关闭文件。
}
printf("\n终端输出:\n");
if((pf = fopen("D:\\xi.txt","rb"))!=NULL)
{
while(fgets(ch,sizeof(ch),pf)!=NULL)//如果要输出的这一行没有内容,返回NULL指针
printf("%s",ch);
fclose(pf);
}
return 0;
}
在终端输入数据,成功在xi.txt文本中写入数据:
接着将文本中的内容读取出来,成功显示在终端: