0
点赞
收藏
分享

微信扫一扫

c语言文件拷贝

颜路在路上 2022-01-20 阅读 39
#include <stdio.h>
#include<windows.h>
int main()
{
//0用户输入src dst文件名
char srcFileName[MAX_PATH] = { 0 };//windows系统最大路径大小260字节,以MAX_PATH宏定义展示
char dstFileName[MAX_PATH] = { 0 };
printf("请输入srcFileName\n");
scanf("%s", srcFileName);
printf("请输入dstFileName\n");
scanf("%s", dstFileName);

//1打开src文件 创建dst文件
FILE* fpread = fopen(srcFileName, "rb");//r是打开字符文件,rb是打开字节文件,读无问题,写会产生字节到字符的转换,导致数据错误,rb wb 字节方法
FILE* fpwrite = fopen(dstFileName, "wb");//w是读取字符,wb是读取字节文件
if (NULL == fpread || NULL == fpwrite)
{
printf("打开失败\n");
return -1;
}
printf("打开成功\n");
//2循环读取src文件内容到内存,写入到dst文件中,读完写完后循环结束
int r;

//缓冲区
char buf[1024];//一次读取1024字节
//char c; //一次读取1字节
while (1)
{
r = fread(buf, 1, 1024, fpread);//0~1024 fread(读入位置,读取次数,读取总大小,读取位置)
if (r)//r不为空,则表示读到
{
fwrite(buf, 1, r, fpwrite);
}
else{//没读到或已经读完,结束程序
break;
}
}

//3关闭
fclose(fpread);
fclose(fpwrite);
while (1);
return 0;
}
//将.exe放入其他盘,即可在任何盘使用拷贝,则只需要盘内文件的名字,而不需要路径#include <stdio.h>
#include<windows.h>
int main()
{
//0用户输入src dst文件名
char srcFileName[MAX_PATH] = { 0 };//windows系统最大路径大小260字节,以MAX_PATH宏定义展示
char dstFileName[MAX_PATH] = { 0 };
printf("请输入srcFileName\n");
scanf("%s", srcFileName);
printf("请输入dstFileName\n");
scanf("%s", dstFileName);

//1打开src文件 创建dst文件
FILE* fpread = fopen(srcFileName, "rb");//r是打开字符文件,rb是打开字节文件,读无问题,写会产生字节到字符的转换,导致数据错误,rb wb 字节方法
FILE* fpwrite = fopen(dstFileName, "wb");//w是读取字符,wb是读取字节文件
if (NULL == fpread || NULL == fpwrite)
{
printf("打开失败\n");
return -1;
}
printf("打开成功\n");
//2循环读取src文件内容到内存,写入到dst文件中,读完写完后循环结束
int r;
//缓冲区
char buf[1024];//一次读取1024字节
//char c; //一次读取1字节
while (1)
{
r = fread(buf, 1, 1024, fpread);//0~1024 fread(读入位置,读取次数,读取总大小,读取位置)
if (r)//r不为空,则表示读到
{
fwrite(buf, 1, r, fpwrite);
}
else{//没读到或已经读完,结束程序
break;
}
}

//3关闭
fclose(fpread);
fclose(fpwrite);
while (1);
return 0;
}
//将.exe放入其他盘,即可在任何盘使用拷贝,则只需要盘内文件的名字,而不需要路径
举报

相关推荐

0 条评论