20.11文件操作-文本文件的copy,对于二进制文件复制会失败

32位文件拷贝成功,64位失败,文本文件拷贝成功,二进制文件拷贝失败

64位的文件拷贝会失败 

 

#include<stdio.h>

//argc 命令行参数个数  argv 命令行参数数组   
//默认就是为1,当前程序文件名(包含路径)
int main(int argc, char* argv[])
{
	//从一个文件拷贝到另一个文件,总共只需要两个文件
	if (argc != 3)
	{
		printf("参数错误,请输入两个文件名\n");
		return 0;
	}

	char* srcFile = argv[1];	//待拷贝的文件
	char* dstFile = argv[2];	//目标文件

	FILE* fpsrc = fopen(srcFile, "r");
	if (!fpsrc)
	{
		perror("src open failed~");
		return 0;
	}
	FILE* fpdst = fopen(dstFile, "w");
	if (!fpdst)
	{
		perror("dst open failed~");
		return 0;
	}

	//从src中读取,写入dst中
	char ch = 0;
	while ((ch = fgetc(fpsrc)) != EOF)
	{
		fputc(ch, fpdst);
	}

	//有可能在这里失败了
	if (ferror(fpsrc) || ferror(fpdst))
	{
		puts("文件出错啦~");
	}
	else
	{
		printf("复制完成 1 个文件\n");
	}

	fclose(fpsrc);
	fclose(fpdst);

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值