fgets和fputs的使用

一、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

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值