c語言fwrite寫入檔案後為什麼出現亂碼

2021-04-22 02:21:00 字數 2667 閱讀 3149

1樓:墨汁諾

這個函式以bai二進位制形式對du

檔案進行操作。zhi

按資料定義結構dao的版寫入保持資料結構的長度,對於數值型別,權再用文字方式開啟時表現為亂碼。例如float a=12345.67,寫入檔案後為4個位元組,開啟後不是文字表示的8個位元組。

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

2樓:匿名使用者

fwrite fread是成塊的對二進

制檔案進行讀寫,如以二進方式處理檔案,檔案裡的內容除了字內

符型以asc碼顯示的容你能用記事本開啟時能看明白,其它數值型別都是按其在記憶體裡的二進位制格式儲存的,你現在又以asc碼的形式強制解釋,當然全時亂碼。fwrite寫,就用fread讀,程式不會出問題,效率還高。

3樓:匿名使用者

這個函式bai

以二進位制形式對檔案進行du操作zhi

按資料定義結

構的寫dao入保持資料結構的長度,對內於數容值型別,再用文字方式開啟時表現為

亂碼。例如float a=12345.67,寫入檔案後為4個位元組,開啟後不是文字表示的8個位元組。

4樓:

size_t fwrite(const void* buffer, size_t size, size_t count, file* stream);

注意:這個函式以二進位制形式對檔案進行操作,不侷限於文字檔案返回回值:返回實際答寫入的資料塊數目

(1)buffer:是乙個指標,對fwrite來說,是要獲取資料的位址;

(2)size:要寫入內容的單位元組數;

(3)count:要進行寫入size位元組的資料項的個數;

(4)stream:目標檔案指標;

(5)返回實際寫入的資料項個數count。

它寫入的時候是二進位制。所以你是看不了的。

5樓:匿名使用者

因為寫入檔案的是二進位制資料,所以看上去就是亂碼。

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

6樓:金色潛鳥

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

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

7樓:太平洋電腦網

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

8樓:皖

應該是哪一句邏輯有問題

c語言檔案輸出時,輸入資料後為什麼會出現亂碼

9樓:祈倩語守洛

studenttype),1,fp)!=1)

簡單看了下,bai這行有問題,往檔案du裡寫zhi的時候是把乙個dao字串寫進去,專stud[i]是乙個struct,強行把它序列化的話,屬記憶體中的儲存不是連續的,這樣寫就會寫入一些沒用的資料,導致出錯。考慮一下怎麼把struct序列化,再看看struct的中的位元組是怎麼對齊的,建議而已

10樓:似曼雁京宣

先確抄認一下檔案是二進位制存的嗎?如果是,用記事本開啟它,應該是看不到數字的。不是說在記事本裡輸入字元123

4,然後儲存成number.dat,程式就能正確讀取的。

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

fp=fopen("number.dat","rb");rb表示binary:二進位制讀寫。

11樓:海理函雨

你這種寫抄入方式是直接將這個資料的記憶體原封不動的拷貝到檔案當中。

在c語言中,記憶體中的結構體的儲存並不是所有資料連續的。

你可以在網路上搜尋一下結構體的對齊原則。

這種原則是c語言中,結構體儲存結構的原理。

如果你希望能更好的理解。

12樓:鎖盼盼賓逸

fwrite函式儲存資料時整型資料將會儲存為對應的ascii字元

比如48就會被儲存為『0』

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

13樓:匿名使用者

windows下,編碼問題也有可能

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

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

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

14樓:顧_城丶

你把id num也用char定義試試

用c語言實現檔案拷貝,用C語言實現檔案拷貝

include int main int argc,char argv argc表示命令引數個數,argv表示引數名稱 fpdest fopen argv 2 wb 以寫入二進位制的方式開啟目標檔案 if fpdest null while c fgetc fpsrc eof fclose fpsr...

C語言中關於檔案包函問題,c語言中有關檔案的問題

錯誤 重複宣告fun3 在 file1 中,include file3.c 表明在file1.c裡宣告file3.c一次 而 include file2.c 表明在file1.c裡宣告file2.c一次 在 file2 中,include file3.c 表明在file2.c裡宣告file3.c一次...

c語言 如何開啟檔案,c語言 如何開啟一個TXT檔案。

很多很多 include include 2 然後點選輸入下方的 指令 int main system start c a.txt return 0 3 然後就可以看到已經開啟想要開啟的txt檔案了。 include include int main 經實踐,這幾種方法都好使 夢想窗外 includ...