[問題] C++的檔案輸入輸出

看板C_and_CPP (C/C++)作者 (人見人愛,車撞爆胎)時間16年前 (2009/08/30 15:22), 編輯推噓2(2014)
留言16則, 2人參與, 最新討論串1/1
因為專題需要寫了一個程式 從一個檔案讀取一組數據,然後在另一個文字黨輸出數據結果 結果檔案只會顯示最後一組數據所產生的結果,應該前幾組結果都被檔案覆蓋了 我用我上課所學,所獨得的資料已經盡力了,解不出來 作業時間逼近,我要求救!!... ofstream file(outfile); file.open(outfile,ios::app); if(!file) { cout << "檔案開啟錯誤!"; return; } 這段是寫在函式裡面,outfile是從函式外讀取的檔案路徑 有這一段時file.open(outfile,ios::ate);會出現檔案開啟錯誤 沒有的話又只會輸出最後一組數的結果 而且,如果我想要我的結果不被覆蓋file.open(outfile,ios::out || ios::app);是否可行? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.31.233

08/30 16:20, , 1F
看起來像是 ofstream file(outfile); 就把 io 物件建立
08/30 16:20, 1F

08/30 16:20, , 2F
建立好了, 所以再執行 file.open(outfile,ios::app);
08/30 16:20, 2F

08/30 16:21, , 3F
就出現錯誤訊息了
08/30 16:21, 3F

08/30 16:22, , 4F
而 ofstream file(outfile); 預設值是 ios::out
08/30 16:22, 4F

08/30 16:23, , 5F
所以每次輸出到檔案就會覆蓋過去
08/30 16:23, 5F

08/30 16:24, , 6F
看你要用 ofstream file(outfile, ios::app);
08/30 16:24, 6F

08/30 16:25, , 7F
或是 ofstream file; file.open(outfile,ios::app);
08/30 16:25, 7F

08/30 16:25, , 8F
不太確定是不是這個問題, 你試試看
08/30 16:25, 8F

08/30 16:30, , 9F
第二個方法,宣告檔案輸入就要給路徑,沒給路徑就會出現錯誤
08/30 16:30, 9F

08/30 16:31, , 10F
第一個方法是可行的!謝謝!! 我可以順便問個問題嗎?
08/30 16:31, 10F

08/30 16:31, , 11F
讀取數據的時候,為了方便我都用浮點數,可是計算最後結果
08/30 16:31, 11F

08/30 16:32, , 12F
有些我不希望出現小數點以後,有方法可以轉換doublb和int嗎?
08/30 16:32, 12F

08/30 16:41, , 13F
資料形態轉換可以加上 (double) or (int)
08/30 16:41, 13F

08/30 16:47, , 14F
若想要輸出格式化的字串, 可以用 sprintf
08/30 16:47, 14F

08/30 16:49, , 15F
例如你不想要小數點就用 "%.0f"
08/30 16:49, 15F

08/30 17:03, , 16F
還有另一種方法, http://tinyurl.com/mg42n8
08/30 17:03, 16F
文章代碼(AID): #1AcYZ714 (C_and_CPP)
文章代碼(AID): #1AcYZ714 (C_and_CPP)