C语言文件IO(6)
很久没写关于C的文件IO了 今天来继续好了 最近闹情绪 发现看看C就忘记了 果然是满喜欢C的原因吗 先钱我们在第2篇的文件IO中讲到过 用C语言进行文件复制操作 但是复制TXT文件的确没问题 大家有操作过别的文件吗 例如jpg mp3 更例如exe文件 复制成功是应该的 但…
很久没写关于C的文件IO了
今天来继续好了
最近闹情绪 发现看看C就忘记了
果然是满喜欢C的原因吗\
先钱我们在第2篇的文件IO中讲到过
用C语言进行文件复制操作
但是复制TXT文件的确没问题
大家有操作过别的文件吗
例如jpg mp3 更例如exe文件
复制成功是应该的
但是复制完毕之后生成的文件缺无法打开
这是为什么呢
[媒体不可用]
主要原因还是读取方式和写入方式问题上
因为我们那篇采用的是字符方式读取和写入
但是我们用记事本打开此类文件发现都是乱码
很有可能就会直接碰到“EOF”符导致操作结束
那怎么办呢
我们就可以采取使用2进制方式读取写入文件哦
对于文件读写方法大家应该都是知道的
这次我们将 r a 修改成rb wb再来试试吧~
修改后代码如下:\
#include "stdio.h"
main()
{
FILE* p=NULL;
FILE* q=NULL;
p=fopen("7zip.exe","rb");
q=fopen("copy.exe","wb");
int ch;
while((ch=fgetc(p))!=EOF)
{
fputc(ch,q);
}
return 0;
}
主意要点是ch的类型
上次因为是字符形所以采用的是char
这次因为是二进制类
所以采用int型哦~
[媒体不可用]