1樓:金色潛鳥
寫入資料用 fprintf(fp,"%s %s %d 。。。這種方式。不是 fscanf(), 另,注意寫出時的格式裡要有分隔符空格,否內則下次讀檔案時容,字串,數字混在一起無法讀。
允許同時「讀寫」的檔案,要注意讀寫位置的控制,必要時用到 迴繞檔案,或fseek。
2樓:太平洋電腦網
解壓檔案出現中文亂碼怎麼辦解決辦法
3樓:皖
應該是哪一句邏輯有問題
c語言檔案輸出時,輸入資料後為什麼會出現亂碼
4樓:祈倩語守洛
studenttype),1,fp)!=1)
簡單看了下,bai這行有問題,往檔案du裡寫zhi的時候是把一個dao字串寫進去,專stud[i]是一個struct,強行把它序列化的話,屬記憶體中的儲存不是連續的,這樣寫就會寫入一些沒用的資料,導致出錯。考慮一下怎麼把struct序列化,再看看struct的中的位元組是怎麼對齊的,建議而已
5樓:似曼雁京宣
先確抄認一下檔案是二進位制存的嗎?如果是,用記事本開啟它,應該是看不到數字的。不是說在記事本里輸入字元123
4,然後儲存成number.dat,程式就能正確讀取的。
二進位制讀取的時候fopen要寫成
fp=fopen("number.dat","rb");rb表示binary:二進位制讀寫。
6樓:海理函雨
你這種寫抄入方式是直接將這個資料的記憶體原封不動的拷貝到檔案當中。
在c語言中,記憶體中的結構體的儲存並不是所有資料連續的。
你可以在網路上搜尋一下結構體的對齊原則。
這種原則是c語言中,結構體儲存結構的原理。
如果你希望能更好的理解。
7樓:鎖盼盼賓逸
fwrite函式儲存資料時整型資料將會儲存為對應的ascii字元
比如48就會被儲存為『0』
c語言關於檔案的讀寫,為什麼輸出到檔案上得到亂碼
8樓:匿名使用者
windows下,編碼問題也有可能
vc++6.0以上不存在這種可能
gcc編譯器,輸入/出預設utf-8,所以在windows下有問題,新增-finput-charset=gbk -fexec-charset=gbk
也有可能是輸出檔案編碼問題,就是windows的記事本,不支援輸出的檔案的編碼(mac居多),你換一個編輯器看看,比如ultraedit。這個是很正常的,比如你在檔案裡輸出一個換行符時,用記事本開啟輸出檔案,則發現變成空格了,實際是記事本讀不了
9樓:顧_城丶
你把id num也用char定義試試
c語言這樣寫為什麼輸出到檔案的是亂碼?求指教!
10樓:匿名使用者
真是大哥,我告訴你為什麼因為我也遇到過你用fprintf和fscanf語句進行檔案的讀取和儲存,絕對不會出現這種問題的!!!
11樓:匿名使用者
#include
#include
int main()
while(a != 100000)
fclose(fp);
return 0;}
c語言,資料能寫入檔案,但是從檔案讀取資料的時候,出現了亂碼,如下**,求解答
12樓:濸海月明
在寫檔案部分的for迴圈裡做如下修改:(已編譯執行,成功)
for(i = 0; i < size; i++)
13樓:匿名使用者
逗號被當成name的一部分讀取了……建議還是用空格分開各項輸入吧,不要用逗號了……
我編寫的c語言程式怎麼執行後出現中文亂碼
用fflush stdin 來清空鍵盤緩衝區,使用getch等都是治標不治本的辦法,可以多學習一下fflush的使用,對於大批量的手動輸入,很有幫助 標頭檔案 include include stdio.h include stdlib.h include main getchar 函式讀取了你的換...
C語言標頭檔案是什麼,c語言中的標頭檔案是什麼概念
標頭檔案是你程式中需要用到東西,如需要某個數學函式,則必須包括數學相關標頭檔案,如math.h,當然,也可以自己寫函式,只要你不怕麻煩!標頭檔案是你程式中需要用到東西,如需要某個數學函式,則必須包括數學相關標頭檔案,如math.h,當然,也可以自己寫函式,只要你不怕麻煩!標頭檔案就是在你所編制的程式...
如何用c語言實現檔案先寫入部分資料,然後再讀取輸出在螢幕上
按照結構體寫入 void writefile int j fp fopen for j 0 j 你寫的是一個二進位制檔案,不能以文字檔案的方式來讀的。要先用fread讀到同樣定義的studnt型別的結構體 或結構體陣列 中,然後再用格式化輸出語句進行輸出結構體的每一個域。c語言 怎麼把一個指定檔案的...