[問題] 關於string遇到的麻煩

看板C_and_CPP作者 (知道越多了解越少)時間14年前 (2009/10/13 15:47), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/2 (看更多)
前情提要: 學校出了一份關於影像處理的作業, 需要 "讀取來源檔 -> 更動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

10/13 15:56, , 1F
要用 binary 的方式來讀檔吧
10/13 15:56, 1F

10/13 17:41, , 2F
漏打 那行應該是 ("test.bmp",ios::binary) 可是還是不行
10/13 17:41, 2F

10/13 17:41, , 3F
因為 bmp 檔裡面會有 \0 當然就斷了
10/13 17:41, 3F

10/13 17:43, , 4F
也不適用 >> 讀檔 請改用 f_r.read() 相關函式
10/13 17:43, 4F

10/13 17:43, , 5F
對對對 就是要問這個有沒有辦法解決 @@
10/13 17:43, 5F

10/13 17:53, , 6F
james732:因為我用.read()程式會當掉 而且.read好像要
10/13 17:53, 6F

10/13 17:53, , 7F
設定長度 所以想看看有沒有別的方式
10/13 17:53, 7F
文章代碼(AID): #1Ar32CZf (C_and_CPP)
文章代碼(AID): #1Ar32CZf (C_and_CPP)