一、fgets函数(行读取)
函数:
char * fgets(char * s,int size,FILE * stream);
功能
fgets()用来从参数 stream 所指的文件内读入字符并存到参数 s 所指的内存空间,直到出现换行字符、读到文件尾或是已读了 size-1个字符为止,最后会加上 NULL 作为字符串结束。
返回fgets()若成功则返回 s 指针,返回 NULL 则表示有错误发生。
两种常用应用场所
1、第三参数指向某个文件:该函数功能:从某个文件读取数据,写到第一个参数上。
2、第三个参数设置为stdin键盘输入:该函数功能:读取键盘输入的内容,写到到第一个参数上
1.1、第二参数指向某个文件(代码演示)
huai.txt 内容如下:
hello world
welcome to my world
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fd;
char buf[30]="";
if((fd=fopen("./huai.txt","r"))==NULL)
{
perror("open fail");
exit(1);
}
fgets(buf,20,fd);
printf("%s",buf);
return 0;
}
运行结果
hello world
注意:此函数只读一行数据。
1.2、 第二个参数设置为stdin键盘输入(代码演示)
#include<stdio.h>
#include<stdlib.h>
int main()
{
char buf[30]="";
fgets(buf,20,stdin);
printf("%s",buf);
return 0;
}
运行结果
输入:hello world 回车
终端显示:hello world
输入:hello world ni hao Beijing 回车
终端显示:hello world ni hao
原因:设置读到20-1个字符结束
二、fputs()函数
函数:
int fputs(const char *s,FILE *stream)
功能:将s中的字符串写到文件中;
参数
s 字符串的首地址。
stream 文件
返回值:
成功返回大于0的数失败返回EOF(-1)
两种常用应用场所
1、将s中的字符,写到文件里
2、将s中的字符,输出带终端上即设置为stdin
2.1、fputs()将s中的字符,写到空huai.txt里(代码演示)
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fd;
char buf[30]="Hello world";
char *str="ni hao beljing";
if((fd=fopen("./huai.txt","w+"))==(void *)-1)
{
perror("fopen fail ");
exit(1);
}
fputs(buf,fd);
fputs(str,fd);
return 0;
}
运行结果
Hello worldni hao beljing
在一个程序中不管写入多少个字符,从下一个空位开始写入。如上结果,从d的下一个开始写入。
2.2、fputs()将s中的字符,输出带终端上即设置为stdout(代码演示)
#include<stdio.h>
#include<stdlib.h>
int main()
{
char buf[30]="Hello world";
char *str="ni hao beljing";
fputs(buf,stdout);
fputs(str,stdout);
return 0;
}
运行结果
Hello worldni hao beljing