C语言 将某文件以二进制形式打开,二进制数据存入一维数组中!急急急!

再对数组进行处理,最后再把数组存入另一文件里,最好有能调通的代码参考一下,对数据的处理可以不写。
这个文件可以是图片、音频,经处理后依然保存为图片或音频,文件地址为CString型,数组的长度要根据文件来生成(数组里都是二进制,要定义什么类型?)

文件以二进制方式打开,如果文件中存在二进制的0x00,就不能用fgetc()这样的函数去读取文件!fgetc只能处理文本的!同样的也不能用fputs()写二进制数据!只能用fread和fwrite来读文件和写文件!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-02
#include<stdio.h>
#include<stdlib.h>
void dd()
{
}//待写
main()
{
FILE *fp1,*fp2;
int i=0;
char aa[100],ch;
if((fp1=fopen("F:\\a.dat","rb+"))==NULL)
{
printf("cannt open F:\\a.dat\n");
exit (0);
}
else printf("成功打开a.dat!\n");
while(ch=fgetc(fp1)!=EOF)
aa[i++]=ch;
if(fclose(fp1)==0)
printf("已关闭a.dat!\n");
else printf("Error occured!\n");
dd();
if((fp2=fopen("F:\\b.dat","wb+"))==NULL)
{
printf("cannt open F:\\b.dataaa\n");
exit (0);
}
else printf("成功打开b.dat!\n");
if(fputs(aa,fp2)==0) printf("success!\n");
else printf("Error occured!\n");
if(fclose(fp2)==0)
printf("已关闭b.dat!\n");
else printf("Error occured!\n");
}
第2个回答  2012-07-02
#include<stdio.h>
main()
{
FILE *fp;
char ch;
if((fp=fopen("d:\\jrzh\\example\\c1.txt","ab+"))==NULL) //注意ab+以二进制打开
{
printf("\n不能打开!");
getch();
exit(1);
}
ch=fgetc(fp); //存入数组
while(ch!=EOF) //显示数据
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
}本回答被网友采纳
相似回答