嘿,我真的不知道在標題中怎麼稱呼這個錯誤,所以在這裏。Ofstream把錯誤的東西寫入文件
我開始了一個任務,我必須讀取文件的內容,執行一些計算並將內容+新計算寫入文件。
我編寫了讀取文件的代碼,並立即將其寫入輸出文件以測試讀取是否正確發生。正如我所做的那樣,我看到ofstream在隨機位置將文件的「filename」字符串(用於要求用戶輸入要打開的文件的名稱)寫入文件中,並且在代碼中沒有提及它。
這是我的代碼:
#include <string>
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
char filename[256] = "";
char currentLine[256] = "";
cout << "Please enter the name of the input file: " << endl;
cin.getline(filename,256);
vector <string> storage;//disregard for now
ifstream infile;
infile.open(filename);
string outputFile = ".output";
outputFile = filename + outputFile;
ofstream outfile(outputFile.c_str());
string line = "";
while(!infile.eof())
{
infile.read(currentLine, 256);
line = currentLine;
storage.push_back(line); //disregard for now
outfile << line; //testing to see if it read properly
}
}
這裏是輸入文本:
1034 BLUE ELECTRIC FROBULATOR 5 1026
1039綠色電FROBULATOR 10 1026
1054 BLUE ELECTRIC DEFROBULATOR(鎂COATING) 7 2000
1069 JELLO HAMMER V2 111 12
1050 BELL SILENCER 0 50
1090 S納克OIL 34 150
1070機械哥吉拉COSTUME(PINK)1 5000
1090 REFROBULATOR 3 9999
1091 REFROBULATOR REFILL(5 PACK)1 4999
1092 REFROBULATOR REFILL(OF 10 PACK)1個8999
2003 FROBULATION TODAY( MAR)4 5
2004 FROBULATION TODAY(APR)9 5
2005 FROBULATION今日(五月)2 5
3102 FROBULATOR客戶保修2YR 3 199
3103 FROBULATOR客戶保修3YR 3 299
,這裏是輸出文本:
1034 BLUE ELECTRIC FROBULATOR 5 1026
1039綠色電FROBULATOR 10 1026
1054 BLUE ELECTRIC DEFROBULATOR(鎂COATING)7 2000
1069 JELLO錘V2 111 12
1050 BELL消音0 50
1090蛇油34 150
1070機械哥吉拉COSTUME(PINK)1 5000
1090 Rinvoice.txtEFROBULATOR 3 9999
1091 REFROBULATOR REFILL(5 PACK)1個4999
1092 REFROBULATOR REFILL(OF 10 PACK)1個8999
2003 FROBULATION TODAY(MAR)4 5
2004 FROBULATION TODAY(APR)9 5
2005 FROBULATION今日(五月)2 5
3102製造商客戶擔保2年 3103發票。txtFROBULATOR客戶保修3YR 3 299
FILL(5 PACK)1 4999
1092 REFROBULATOR REFILL(OF 10 PACK)1個8999
2003 FROBULATION TODAY(MAR)4 5
2004 FROBULATION TODAY(APR)9 5
2005年FROBULATION今日(五月)2 5
3102 FROBULATOR客戶保修2YR 3 199
3103 invoice.txt
正如你可以看到 「invoice.txt」 不應該在輸出中。現在我錯過了什麼?
你確定當你開始.output文件是空的嗎? – MadcapLaugher 2010-01-17 21:18:22
順便說一句 - 你將被讚揚寫作更清晰的家庭作業相關的問題,我曾經見過一段時間。 – dmckee 2010-01-17 21:20:54
無所謂 - 它會被覆蓋。但他應該檢查它是否正確打開。 – 2010-01-17 21:21:20