看板 C_and_CPP 關於我們 聯絡資訊
前情提要: 學校出了一份關於影像處理的作業, 需要 "讀取來源檔 -> 更動bmp裡檔的數值 -> 寫入新檔案", 為了方便後續操作, 所以我想用string來讀取檔案的內容。 但是使用下列程式(簡化後)的時候, "f_r >> data;" 這行往往無法將來源檔的內容完全讀入, 讀到一半就會停止了 (有用過 while(!f_r.eof()) 判定過,似乎程式也知道沒有讀到檔案結尾) 想請問有沒有解決的辦法? 先謝謝前輩指教了 T_T #include<iostream> #include<fstream> #include<string> using namespace std; int main() { ifstream f_r("test.bmp"); ofstream f_w("out.bmp") ; string data; f_r >> data; f_w << data; return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.252.73
james732:要用 binary 的方式來讀檔吧 10/13 15:56
StarRoad:漏打 那行應該是 ("test.bmp",ios::binary) 可是還是不行 10/13 17:41
Ebergies:因為 bmp 檔裡面會有 \0 當然就斷了 10/13 17:41
james732:也不適用 >> 讀檔 請改用 f_r.read() 相關函式 10/13 17:43
StarRoad:對對對 就是要問這個有沒有辦法解決 @@ 10/13 17:43
StarRoad:james732:因為我用.read()程式會當掉 而且.read好像要 10/13 17:53
StarRoad:設定長度 所以想看看有沒有別的方式 10/13 17:53