利用fgets与fputs实现文件内容拷贝

 fgets函数

(1)功能:每次读取一行

(2)头文件及函数原型
    #include <stdio.h>
    char *fgets(char *s, int size, FILE *stream);

 (3)参数说明:
    char buf[100]; //用来保存读取出的一行字符串
    fgets(buf, 100, fp); //调用一次,读取一行字符串,保存到buf数组中
    char *s  //读出的一行字符串存储的位置 
    int size //最多能够读取的字符数
    FILE *stream //流,就fopen的返回值,流和打开的文件关联在一起

(4)返回值:

    成功:char * 返回值指向读取出字符串的首地址
    失败:返回 NULL  ,读取到文件尾返回NULL 
      
        fgetc函数,读取到文件的尾巴返回值是 EOF(-1)
        fgets函数,读取到文件的尾巴返回值是 NULL

(5) 实例

    char buf[100]; //用来保存读取的一行
    fgets(buf, 100, fp);

fputs函数

(1)功能: 每次写入一行 
        
(2)头文件及函数原型

    #include <stdio.h>
    int fputs(const char *s, FILE *stream);

(3)参数说明: 

    char buf[100] = "hello world!!!";
    
    fputs(buf, fp);

    const char *s //即将写入文件中的字符串,存放的位置

    FILE *stream //流 ---> 关联打开的文件 fopen函数的返回值

(4)返回值:

    成功:>= 0
    失败:返回 EOF  
        
(5)实例:

    char buf[100] = "hello world";
    
    fputs(buf,fp);

下面利用fgets函数与fputs函数实现文件内容拷贝

#include <stdio.h>

int main(int argc, const char *argv[])
{
	if(argc != 3)
	{
		printf("忘记传递参数了!! ./a.out a.c b.c \n");
		return -1;
	}
	char buf[100];//用来保存每次读取的内容
	//打开两个文件 
	FILE* fpr = fopen(argv[1], "r");
	FILE* fpw = fopen(argv[2], "w");
	if(fpr == NULL || fpw == NULL)
	{
		printf("fopen failed!!\n");
		return -1;
	}
	//循环拷贝,从a.c中每读取出一行字符串,就立刻写入另一个文件b.c中 
	while(fgets(buf, 100, fpr) != NULL)//读取内容到buf
		fputs(buf, fpw);//再将读取的buf写入另一个文件

	//关闭文件
	fclose(fpr);
	fclose(fpw);
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值