实现文件拷贝(标准C库文件IO)

1,fgetc函数与fputc函数

fgetc:每次读取一个字符

fputc:向文件中写入一个字符

#include <stdio.h>

int main(int argc, const char *argv[])
{
	if(argc != 3)
	{
		printf("忘记传递参数了!!  \n");
		return -1;
	}
	int ch;
	FILE* fpr = fopen(argv[1], "r");
	FILE* fpw = fopen(argv[2], "w");
	if(fpr == NULL || fpw == NULL)
	{
		printf("fopen failed!!\n");
		return -1;
	}
	//循环拷贝
	//从一个文件中每读取出一个字符,就立刻写入另一个文件中 
	while(1)
	{
		ch = fgetc(fpr);//读取出一个字符
		if(ch == -1)    //读取失败
			break;
		fputc(ch, fpw);}
	//关闭文件
	fclose(fpr);
	fclose(fpw);
	return 0;
}	

2,fgets函数与fputs函数

fgets:每次读取一行

fputs:每次写入一行

#include <stdio.h>

int main(int argc, const char *argv[])
{
	if(argc != 3)
	{
		printf("忘记传递参数了!\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;
	}
	//循环拷贝
	//从一个文件中每读取出一行字符串,就立刻写入另一个文件中 
	while(fgets(buf, 100, fpr) != NULL)//读取内容到buf
		fputs(buf, fpw);//再将读取的buf写入另一个文件
	fclose(fpr);
	fclose(fpw);
	return 0;
}

3,fread函数与fwrite函数

fread:以指定大小为单位读文件

fwrite:以指定大小为单位写文件

#include<stdio.h>

int main(int argc,const char* argv[])
{
	int ret;
	char buf[100] = { 0 };
	if(argc != 3)
	{
		printf("忘记传递参数了!\n");
		return -1;
	}
	FILE* fpr = fopen(argv[1],"r");
	//只读打开
	FILE* fpw = fopen(argv[2],"w");
	//读写打开,该文件不存在就创建,存在先清空再打开
	if(fpr == NULL || fpw == NULL)
	{
		perror("failed");
		return -1;
	}
	//fread的返回值是实际读取到的块数
	//读取多少块,就写入文件多少块
	while((ret = fread(buf,1,100,fpr)) > 0 )
		fwrite(buf,1,ret,fpw);
	fclose(fpr);
	fclose(fpw);
	return 0;
}

运行演示

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值