作者pog83 (人見人愛,車撞爆胎)
看板C_and_CPP
標題[問題] C++的檔案輸入輸出
時間Sun Aug 30 15:22:43 2009
因為專題需要寫了一個程式
從一個檔案讀取一組數據,然後在另一個文字黨輸出數據結果
結果檔案只會顯示最後一組數據所產生的結果,應該前幾組結果都被檔案覆蓋了
我用我上課所學,所獨得的資料已經盡力了,解不出來
作業時間逼近,我要求救!!...
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
1F:推 su31o4gj83:看起來像是 ofstream file(outfile); 就把 io 物件建立 08/30 16:20
2F:→ su31o4gj83:建立好了, 所以再執行 file.open(outfile,ios::app); 08/30 16:20
3F:→ su31o4gj83:就出現錯誤訊息了 08/30 16:21
4F:→ su31o4gj83:而 ofstream file(outfile); 預設值是 ios::out 08/30 16:22
5F:→ su31o4gj83:所以每次輸出到檔案就會覆蓋過去 08/30 16:23
6F:→ su31o4gj83:看你要用 ofstream file(outfile, ios::app); 08/30 16:24
7F:→ su31o4gj83:或是 ofstream file; file.open(outfile,ios::app); 08/30 16:25
8F:→ su31o4gj83:不太確定是不是這個問題, 你試試看 08/30 16:25
9F:→ pog83:第二個方法,宣告檔案輸入就要給路徑,沒給路徑就會出現錯誤 08/30 16:30
10F:→ pog83:第一個方法是可行的!謝謝!! 我可以順便問個問題嗎? 08/30 16:31
11F:→ pog83:讀取數據的時候,為了方便我都用浮點數,可是計算最後結果 08/30 16:31
12F:→ pog83:有些我不希望出現小數點以後,有方法可以轉換doublb和int嗎? 08/30 16:32
13F:推 su31o4gj83:資料形態轉換可以加上 (double) or (int) 08/30 16:41
14F:→ su31o4gj83:若想要輸出格式化的字串, 可以用 sprintf 08/30 16:47
15F:→ su31o4gj83:例如你不想要小數點就用 "%.0f" 08/30 16:49