1樓:匿名使用者
你那個測到的檔案位元組數與實際的的位元組數不相等,實際讀到的小於最先測量的資料,
在輸出時應該按照實際讀取到的來輸出。
你再看看
c語言輸出最後 會多一個亂碼
2樓:風~月
因為你沒有初始化,char a[100]= ;char b[100] = ;這樣子初始化以後就可以了,使用定義了字元陣列後都必須要初始化,因為字元陣列的長度是根據最後一位是不是''\0''決定的,如果沒有初始化就會出現你這種亂碼的問題了
c語言輸出檔案末尾出現多餘的亂碼
3樓:匿名使用者
既然你要以字串的形式輸出 char 陣列,那麼在定義 a 的時候就應該給\0多留一個空。如果你不想留,那麼在輸出的時候,應該以字元的形式 %c 一個一個地輸出。
給字串加\0不是在 fprintf(fout,"%s\0",a); 這個地方加的。要在字串本身,也就是 char a 的最後一個元素裡賦值為 \0 。
4樓:匿名使用者
輸出字串自動會有\0結束,不需要顯示輸出\0的吧。
另外a總共12個字元,都填值了,沒有地方放\0了,宣告為 char a[15]= 吧
5樓:匿名使用者
百分s是全部資料 用for語句遍歷列印吧 或者試試puts函式 或者用fomat函式規定輸出距離
c語言這樣寫為什麼輸出到檔案的是亂碼?求指教!
6樓:匿名使用者
真是大哥,我告訴你為什麼因為我也遇到過你用fprintf和fscanf語句進行檔案的讀取和儲存,絕對不會出現這種問題的!!!
7樓:匿名使用者
#include
#include
int main()
while(a != 100000)
fclose(fp);
return 0;}
c語言關於檔案的讀寫,為什麼輸出到檔案上得到亂碼
8樓:匿名使用者
windows下,編碼問題也有可能
vc++6.0以上不存在這種可能
gcc編譯器,輸入/出預設utf-8,所以在windows下有問題,新增-finput-charset=gbk -fexec-charset=gbk
也有可能是輸出檔案編碼問題,就是windows的記事本,不支援輸出的檔案的編碼(mac居多),你換一個編輯器看看,比如ultraedit。這個是很正常的,比如你在檔案裡輸出一個換行符時,用記事本開啟輸出檔案,則發現變成空格了,實際是記事本讀不了
9樓:顧_城丶
你把id num也用char定義試試
10樓:緩緩掉落的松針
把fwrite改成fprintf試試。
fprintf(fp,"%d %d %s\n",st[i].id,st[i].num,st[i].name);
c語言檔案輸出出現亂碼 5
11樓:老猴子不會胖
fflush(stdin);
因為程式裡有多個輸
入的時候,並不是一個輸完另一個再輸入的,
每個輸入語句前,加上此語句,就可以清空之前輸入對下次輸入的影響;
例如printf請輸入第1題: scanf輸入語句printf請輸入第2題: scanf輸入語句printf請輸入第3題:
scanf輸入語句但其實這三個輸入語句並不是在每次輸出語句後面的printf請輸入第1題:fflush(stdin); scanf輸入語句
printf請輸入第2題: fflush(stdin);scanf輸入語句
printf請輸入第3題:fflush(stdin); scanf輸入語句
完美解決
c語言字元輸出,C語言輸入輸出字串
include int main d輸出的是有符號的整數,超過127的數字,在二進位制的最高位就是1了。那麼在後符號數的首位標記正負。如果是1,就是負數了。具體還是看看補碼運演算法則吧 c語言的字元是ascii編碼 標準的ascii碼只到127吧 沒記清楚 大概是這個數 char 的變數存的值太大直...
c語言輸出了,C語言輸出了1IND00是什麼意思
凡是出現 1.ind00.基本可以肯定是發生了除0錯誤。你這複雜的計算,看的人眼暈,自己加些除錯語句查一下吧 一個簡單的c語言程式,輸出 1.ind00.不知道 錯 進行浮點數程式設計時,如果沒有注意,常常會出現輸出類似 1.ind,1.inf 或者 nan,inf 之類奇怪的輸出。這通常隱含了浮點...
C語言字串輸出亂碼,C語言,字串輸出是亂碼
輸出來亂碼是必須的,因為你的數源據型別搞錯了bai,你使用的是字元 du函式zhistringcopy 來拷貝字元 那麼要處理的數dao據當是char型別,然而你所定義的指標應當也是char型別 你應當修改的地方是 int str1,str2 請將int改為char 將你程式中的所有int替換為ch...