IO学习系列之使用fgets和fputs复制文件内容

  • fgets函数:
  • 功能:从文件中读取小于size个字符,遇到EOF或者'\n'时停止读取
    并且会将换行符也一起存到s指向的缓冲区里,在字符串最后添加'\0’;
  • 具体内容:
#include <stdio.h>

char *fgets(char *s, int size, FILE *stream);
/*
参数:

		s:	用来存放读取的内存的缓冲区的首地址
	
		size:	想读取的字节数
	
		stream:	文件指针
	
返回值:

		成功 	指针s的地址
	
		失败 	NULL
*/
  • fputs函数:
  • 功能:将s指向的字符串写到文件中,'\0'不会写入文件
  • 具体内容:
#include <stdio.h>

int fputs(const char *s, FILE *stream);
/*
功能:

    	将s指向的字符串写到文件中,'\0'不会写入文件
    	
参数:

    	s:		要写入的字符串的首地址
    	
    	stream:		文件指针
    	
返回值:

    	成功 非负数
    	
    	失败 -1
*/
  • 示例代码:
/*
    使用 fgets 和 fputs 实现文件的拷贝。
*/


#include <stdio.h>

int main(int argc, const char *argv[])
{

    if(3 != argc)
    {

        printf("Usage:%s src_file dest_file\n",argv[0]);

        return -1;

    }

    FILE *fp1 = fopen(argv[1],"r");

    if(NULL == fp1)
    {
        perror("fopen error");
        return -1;
    }
       
    
    FILE *fp2 = fopen(argv[2],"w");

    if(NULL == fp2)
    {
        perror("fopen error");
        return -1;
    }
        
    char buff[128] = {0};

    while(NULL != fgets(buff,sizeof(buff),fp1)){

        fputs(buff,fp2);
    }

    fclose(fp1);
    
    fclose(fp2);
    
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值