c语⾔打开⽂件保存⽂件格式,⽂件的打开与保存(C语⾔)最近在弄⽂件的传输,基本流程就是:
打开⽂件->读取⽂件->传输(scoket模块)
->写⼊⽂件->保存.
现在单单看⽂件操作的部分,弄了我3天时间没想明⽩,看下⾯的代码。
为什么打开保存txt就可以,但是其他的⽂件就不⾏呢?
c语言和c++区别FILE *pFile=fopen("D:\\111.doc","r");//之前的乱码系因为当j=lenFile的时候,*sendbuf='0',这样是把sendbuf的第⼀个字符变0,当然乱码啦.
char *buffer;
fseek(pFile,0,SEEK_END);
int lenFile=ftell(pFile);
buffer=new char[lenFile+1];
int i=0;
for (i=0;i
保存的代码///
FILE *pFile2=fopen("D:\\133.doc","w");
fwrite(buffer,1,lenFile,pFile2);
fclose(pFile2);
继续看孙鑫的《VC++深⼊详解》,果然看书不要看⼀半啊,⼀知半解害死⾃⼰。还是不够踏实,太浮躁了!
⾥⾯有说⽂本⽅式和⼆进制⽅式读取⽂件的区别,系统默认的不是⼆进制⽅式读取⽂件,⽽是以⽂本⽅式打开。所以这就是为什么txt能打开⽽其他是乱码的原因了。
⽂件⼀般分为:⼆进制⽂件和⽂本⽂件。
⽂本⽂件:也被称为ASCII⽂件,它的每⼀个字节存放的都是可表⽰为⼀个字符的ASCII代码的⽂件,它是以“⾏”为基本结构的⼀种信息组织和储存⽅式的⽂件,可⽤任何⽂字处理程序阅读的简单⽂件。
⼆进制⽂件:是包含在ASCII及扩展ASCII字符中编写的数据和程序。⼀般是可执⾏程序,图像,声⾳等⽂件。
这⾥要强调的是:虽然这⾥将⽂件分类了,但实际上,他们的本质都是:⽂件只是在计算机内存中以⼆进制表⽰的数据再外部存储介质的另⼀种存放形式。对于⽂本⽂件来说,它只是⼀种特殊形式的⽂件,它所存放的每⼀个字节都可以转换成⼀个可读的字符。
所以,上⾯就很简单啦。
这⾥:        FILE *pFile=fopen("D:\\111.jpg","r");
应该改成:FILE *pFile=fopen("D:\\111.jpg","rb");
其他类似的时候的代码也作相应改动就可以了。。。
呼,困扰了2天的问题搞掂了,好开⼼。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。