← 回到文章列表

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型哦~
[媒体不可用]

在这里找找

输入关键词,找一篇过去的记录。