用fwrite存array 後,叫出來為何是ASCII碼.. |
尚未結案
|
jchuang
一般會員 ![]() ![]() 發表:41 回覆:36 積分:15 註冊:2003-08-08 發送簡訊給我 |
deal all:
我在turbo C下用fwrite存array 後,叫出來為何是ASCII碼??
#include這樣子再呼叫出來為何是ASCII碼,而不是0 1 2 3 4 5 6 7 8 9 呢? 新手上路
------
新手上路 |
derrenbol1
中階會員 ![]() ![]() ![]() 發表:5 回覆:113 積分:93 註冊:2004-12-09 發送簡訊給我 |
To jchuang: 1. 你應該將a陣列改成char型別; 當然用fwrite寫進去時, 應該是
fwirte(&a, sizeof(char), 10, fp);2. 在你給a陣列的for迴圈中, 應該改成下面 for(i=0;i<10;i ) a[i] = (char)(i 0x30);仔細一看才發現你i計數還多做了一次, 小心哦; 我猜你誤會了, 你看到 不叫做ASCII, 是HEX CODE(十六進制碼). 在ACSII的定義中, 數字字元 '0','1','2',... 的HEX CODE是從0x30開始, 所以你想要讀出來被顯示 為0123... 的話, 你寫進去時就得多加0x30. 原本你這段程式碼執行完 後的輸出檔(aa.txt), 用UltraEdit去讀出來的話, 應該會被當成十六進 制檔案顯示, 其內容為 : 0x01 , 0x00 , 0x02 , 0x00 , ..... so on 請參考 發表人 - derrenbol1 於 2005/10/21 01:50:41 |
jchuang
一般會員 ![]() ![]() 發表:41 回覆:36 積分:15 註冊:2003-08-08 發送簡訊給我 |
|
derrenbol1
中階會員 ![]() ![]() ![]() 發表:5 回覆:113 積分:93 註冊:2004-12-09 發送簡訊給我 |
To jchuang : 你試試看用fprintf取代fwrite.
#include以上程式的結果僅讓你參考, 10個值而已應該是不須要做什麼處理. 不然的話你還可以: for( i = 0 ; i < 10 ; i ) fprintf(fp, "第d 取樣值 = d\n", i 1, a[i]);這樣排起來應該會比較好看點. fwrite通常被拿做raw data檔案輸 出居多, 而fprintf的話則是可以做些文字顯示處理, 它與printf函 數是一樣的, 更準確的說, printf只是fprintf的衍生, 因為printf 只針對"標準輸出設備", 也就是螢幕. 在作業系統的定義下, "設備" 對它而言也只是一種檔案而已, 扯太多了. 請參考 |
jchuang
一般會員 ![]() ![]() 發表:41 回覆:36 積分:15 註冊:2003-08-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |