2007年10月18日 星期四

fopen所遇到的問題--已解決

最近開始進入論文階段了
伴隨著就是開始寫code看code

要做的第一件事就是開檔讀檔寫檔
開檔,不就是下一個fopen有什麼難的
當然這件事你知道我知道獨眼龍也知道
偏偏就是遇上了一個大問題

奇怪,我用fopen開的檔,為啥寫資料進檔案的時候
在資料是0x0a的前面怎麼都多了個0x0d

這個問題不過就是讓我搞了一兩個小時
也不過是出來的圖檔就是錯的咩

總之透過google大神我終於得到了解答

一般我們開啟要寫入的檔案,
要輸入的程式為
fopen("xxx.txt", "w");

問題就出在這個w了
如果只是單純的w,我們可愛的compiler會認為你是要輸入carriage-return的資料
所以很自動的幫你加入0x0d
但是我要處理的資料都是串列式的,什麼位置是什麼資料就是一定的
所以這個時候要改寫成
fopen("xxx.txt", "wb");
這樣程式才不會自動幫你加入0x0d,而是很忠實的一個個寫入你所希望的二進位資料

這樣我的問題就解決了,留個筆記以免自己以後忘記

沒有留言: