用C語言編寫檔案為什麼檔案裡是亂碼

2021-05-21 21:35:22 字數 2650 閱讀 9910

1樓:滄海雄風

abcdefghijklmnopqrstuvwxyzpress any key to continue#include

#include

int main()

; // 問題

一 長度

不夠 問題二 沒有初始化

if((fp=fopen("字串.dat","r"))==null)

fread(str,1,27,fp); //問題三 是fread 不是 fwrite 問題四版

權 注意長度 27

printf("%s\n",str);

fclose(fp);

return 0;}

2樓:匿名使用者

char str[26];

if((fp=fopen("字串.dat","r"))==null)

fwrite(str,1,26,fp);fputs("\n",fp);

str的初值在哪

呢,你要寫什麼進去呢,可不就是亂碼內了

你到底是讀還是寫fopen("字串.dat","r") 以讀方容式開啟

後面又是寫fwrite(str,1,26,fp);fputs("\n",fp);

3樓:

//後一個程式的

fwrite(str,1,26,fp);fputs("\n",fp); //這是寫,不是讀。

//改為

fread(str,1,26,fp);fputs("\n",fp);

c語言中,為什麼呼叫檔案內的資料會出現亂碼

4樓:風雷雪電

先確認一下檔案是二進位制存的嗎?如果是,用記事本開啟它,應該是看不到數字的。不是說在記事本里輸入字元1 2 3 4,然後儲存成number.dat,程式就能正確讀取的。

二進位制讀取的時候fopen要寫成

fp=fopen("number.dat","rb");

rb表示binary:二進位制讀寫。

c語言關於檔案的讀寫,為什麼輸出到檔案上得到亂碼

5樓:匿名使用者

windows下,編碼問題也有可能

vc++6.0以上不存在這種可能

gcc編譯器,輸入/出預設utf-8,所以在windows下有問題,新增-finput-charset=gbk -fexec-charset=gbk

也有可能是輸出檔案編碼問題,就是windows的記事本,不支援輸出的檔案的編碼(mac居多),你換一個編輯器看看,比如ultraedit。這個是很正常的,比如你在檔案裡輸出一個換行符時,用記事本開啟輸出檔案,則發現變成空格了,實際是記事本讀不了

6樓:顧_城丶

你把id num也用char定義試試

c語言寫入檔案為什麼會出現亂碼的現象 10

7樓:金色潛鳥

寫入資料用 fprintf(fp,"%s %s %d 。。。這種方式。不是 fscanf(), 另,注意寫出時的格式裡要有分隔符空格,否內則下次讀檔案時容,字串,數字混在一起無法讀。

允許同時「讀寫」的檔案,要注意讀寫位置的控制,必要時用到 迴繞檔案,或fseek。

8樓:太平洋電腦網

解壓檔案出現中文亂碼怎麼辦解決辦法

9樓:皖

應該是哪一句邏輯有問題

c語言這樣寫為什麼輸出到檔案的是亂碼?求指教!

10樓:匿名使用者

真是大哥,我告訴你為什麼因為我也遇到過你用fprintf和fscanf語句進行檔案的讀取和儲存,絕對不會出現這種問題的!!!

11樓:匿名使用者

#include

#include

int main()

while(a != 100000)

fclose(fp);

return 0;}

為什麼c語言輸出檔案內容亂碼

12樓:匿名使用者

這種文字文來件,不能自直接使用

讀到結構的方法。因為結構裡會有非文字的控制符,比如字串結束符'\0'。

一般使用直接讀到結構的方法,只限於二進位制格式的檔案,並且最好是讀自己建立的檔案,別人建立的,格式剛剛好合適建立結構的也很少。

你這個亂碼,你的檔案裡,學號長度為10個位元組,所以你定義學號這個變數時,必須定義11個位元組的長度,因為字串的變數,必須要有一個'\0'作為結束,不然的話,顯示的時候,沒有結束符就會接著往下顯示,就會有亂碼出現。

如果僅僅是這三行的話,倒也能使用結構來讀,比如結構裡定義num[11],讀完後執行一下num[10] = '\0';給它補一個結束符。但如果有人叫「王老四」,名字有的是2個字,有的是3個字這樣,你這個就不好判斷了。

這種文字,最好是使用fscanf("%s %s %s %s %s", num, name, ***, date, major)的形式來讀取。每次讀取一行。(注意字串定義變數時,長度一定要多加1位)。

13樓:月湖清夢

你把格式存為文字檔案製表符分格試一下呢

C語言檔案讀寫問題,在檔案裡隨便寫字串,為什麼讀出來之後是亂碼

我表示今天同樣的問題,最後發現是檔案流中的偏移量的問題。造成的。呼叫fseek 將偏移量弄到檔案開頭,就成了 沒加結束符卻當作字串用!亂碼已經是最好的結果了!read,只是讀出一定數量的資料,並沒有義務給你的資料加字串結束符!c語言關於檔案的讀寫,為什麼輸出到檔案上得到亂碼 windows下,編碼問...

怎麼用c語言寫拷貝檔案,要求用readir和write

lz 你好 檔案的讀取和寫入應該是 fread void buffer,size t size,size t count,file stream fwrite const void buffer,size t size,size t count,file stream 我只講解fread的四個引數 ...

c語言如何在工程裡建立多個檔案?內詳

一個工程只能有一個main函式,但可以有多個檔案例如main.c定義 include stdio.h void main void 在另一個檔案file2.c裡再定義一些函式void fun1 void fun2 然後把這兩個檔案都包涵到工程裡去一起編譯就可以了。如果你要從main函式裡呼叫file...