古詩詞大全網 - 古詩大全 - C語言fwrite寫入文件後為什麽出現亂碼?

C語言fwrite寫入文件後為什麽出現亂碼?

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

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

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

擴展資料:

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

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

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

百度百科-fwrite