導航:首頁 > 文件教程 > c寫文件亂碼

c寫文件亂碼

發布時間:2023-11-06 15:51:26

A. 用C語言編寫文件為什麼文件里是亂碼

abcdefghijklmnopqrstuvwxyz
Press any key to continue

#include<stdio.h>
#include<stdlib.h>

int main()
{
FILE *fp;
char str[27]={0}; // 問題 一 長度不夠 問題二 沒有初始化
if((fp=fopen("字元串.dat","r"))==NULL)
{
printf("can't find the file!\n");
exit(0);
}
fread(str,1,27,fp); //問題三 是fread 不是 fwrite 問題四 注意長度 27
printf("%s\n",str);
fclose(fp);
return 0;
}

B. c語言編譯運行亂碼是什麼原因

這種情況多數是由於操作系統的語言選項不正確引起的。建議你查看一下控制面板中的區域和語言選項,特別是有關「非Unicode程序的語言」,一定要選擇成「中文(簡體,中國)」。然後重啟電腦。

C. C語言fwrite寫入文件後為什麼出現亂碼

這個函數以二進制形式對文件進行操作。

按數據定義結構的寫入保持數據結構的長度,對於數值類型,再用文本方式打開時表現為亂碼。例如float a=12345.67,寫入文件後為4個位元組,打開後不是文本表示的8個位元組。

寫入數據用fprintf(fp,"%s %s %d 這種方式。不是 fscanf(), 另,注意寫出時的格式里要有分隔符空格,否則下次讀文件時shu,字元串,數字混在一起無法讀。允許同時「讀寫」的文件,要注意讀寫位置的控制,必要時用到 回繞文件,或fseek。

(3)c寫文件亂碼擴展閱讀:

返回實際寫入的數據項個數count。

說明:這個與文件的打開模式有關,如果是w+,則是從file pointer指向的地址開始寫,替換掉之後的內容,文件的長度可以不變,stream的位置移動count個數;如果是a+,則從文件的末尾開始添加,文件長度加大。

fseek對此函數有作用,但是fwrite函數寫到用戶空間緩沖區,並未同步到文件中,所以修改後要將內存與文件同步可以用fflush(FILE *fp)函數同步。

D. C語言讀入寫出文件,寫出文件時出現個別亂碼。

出問題的原因是你ftell得到的長度和你fread實際讀到的位元組數不符,原因是windows把回車看作/r/n2個字元,ftell讀的時候也按2個算,但是fread讀的時候卻算一個,就是\n ,這就導致你fwrite的時候比你fread到的要多。
解決辦法就是你可以定義一個額外的整數n來記錄讀到的字元數,並把下面2句改成這樣:

/*把文件拷貝到buffer中*/
n=fread(buffer,1,lSize,pFile);
/*寫入新文件中*/
fwrite(buffer,1,n,newFile);

你可以先不改然後把測試文件內容刪到只剩下一行,就不會出這個問題

E. C語言中指針讀寫文件,問什麼記事本都是亂碼,怎麼改呢

代碼看,在Windows平台是有大概率會亂碼,假如你的商品信息數組里存放了換行就一定會亂碼。

主要問題在文件的打開方式不對,fread, fwrite函數最好以二進制模式打開文件,即打開方式加上b,即(rb, wb)。在unix/Linux系統應該沒問題。以下是問題解釋:

二進制和文本模式的區別

1.在windows系統中,文本模式下,文件以""代表換行。若以文本模式打開文件,並用fputs等函數寫入換行符" "時,函數會自動在" "前面加上" "。即實際寫入文件的是"" 。

2.在類Unix/Linux系統中文本模式下,文件以" "代表換行。所以Linux系統中在文本模式和二進制模式下並無區別。

(5)c寫文件亂碼擴展閱讀

ffopen為C語言編程中所需的一個常用語言,多數用來打開文件。其調用的一般形式為:文件指針名=fopen(文件名,使用文件方式);其中,『』文件指針名」必須是被說明為FILE 類型的指針變數,文件名」是被打開文件的文件名;「使用文件方式」是指文件的類型和操作要求。「文件名」是字元串常量或字元串數組。

基本介紹函數功能:打開一個文件函數原型:FILE * fopen(const char * path,const char * mode);相關函數:open,fclose,fopen_s,_wfopenfopen所需庫:返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno 中。一般而言,打開文件後會做一些文件讀取或寫入的動作,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。

參數說明:參數path字元串包含欲打開的文件路徑及文件名,參數mode字元串則代表著流形態。

mode有下列幾種形態字元串:

r 以只讀方式打開文件,該文件必須存在。

r+ 以可讀寫方式打開文件,該文件必須存在。

rb+ 讀寫打開一個二進制文件,允許讀寫數據。

rw+ 讀寫打開一個文本文件,允許讀和寫。

w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。

w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。

a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)

a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)

wb 只寫打開或新建一個二進制文件;只允許寫數據。

wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。

閱讀全文

與c寫文件亂碼相關的資料

熱點內容
mdfldf是什麼文件 瀏覽:569
文件在桌面怎麼刪除干凈 瀏覽:439
馬蘭士67cd機版本 瀏覽:542
javaweb爬蟲程序 瀏覽:537
word中千位分隔符 瀏覽:392
迷你編程七天任務的地圖怎麼過 瀏覽:844
word2003格式不對 瀏覽:86
百度雲怎麼編輯文件在哪裡 瀏覽:304
起名app數據哪裡來的 瀏覽:888
微信怎麼去泡妞 瀏覽:52
百度廣告html代碼 瀏覽:244
qq瀏覽器轉換完成後的文件在哪裡 瀏覽:623
jsp中的session 瀏覽:621
壓縮完了文件去哪裡找 瀏覽:380
武裝突襲3浩方聯機版本 瀏覽:674
網路機頂盒移動網路 瀏覽:391
iphone手機百度雲怎麼保存到qq 瀏覽:148
資料庫設計與實踐讀後感 瀏覽:112
js對象是什麼 瀏覽:744
網頁文件存pdf 瀏覽:567

友情鏈接