c语言打开文件保存文件格式,文件的打开与保存(C语言)
最近在弄文件的傳輸,基本流程就是:
打開文件->讀取文件->傳輸(scoket模塊)
->寫入文件->保存.
現在單單看文件操作的部分,弄了我3天時間沒想明白,看下面的代碼。
為什么打開保存txt就可以,但是其他的文件就不行呢?
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天的問題搞掂了,好開心。
總結
以上是生活随笔為你收集整理的c语言打开文件保存文件格式,文件的打开与保存(C语言)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阻塞IO和非阻塞IO的区别 (BIONI
- 下一篇: 手机收到CAD图纸打不开怎么办?