我需要將兩個文本文件放在一個矢量數組中,然後將它們寫入一個新的文本文件中。 將它們合併後。新文件具有多餘字符。合併兩個文本文件會產生更奇怪的結果
FE:緩衝區的
f1.txt ("text1")
f2.txt ("text2.")
f12.txt ("text1˙text2.˙W64")
內容: 「文本1文本2 W64」
下面是代碼:
int main(){
enum errorcode{FNF,FNC};
vector<char> buffer;
char ime[255];
cin>>ime;//first file
ifstream ud1(ime,ios::in);
if(ud1.is_open()){
while(!ud1.eof())buffer.push_back(ud1.get());
ud1.close();
}
else {cout<<"File not found.";return FNF;}
cin>>ime;//second file
ifstream ud2(ime,ios::in);
if(ud2.is_open()){
while(!ud2.eof())buffer.push_back(ud2.get());
ud2.close();
}
else {cout<<"File not found.";return FNF;}
cin>>ime;//new file
ofstream id(ime,ios::out);
if(id.is_open()){
for(int i=0;i<buffer.capacity();i++)id.put(buffer[i]);
id.close();
}
else {cout<<"File not created.";return FNC;}
return 0;
}
我想這是因爲記事本或文件本身。 你能告訴我這個理由嗎。
我想'ID << ud1.rdbuf()<< ud2.rdbuf();'驗證所有三個文件打開後成功將縮短這很多。無論如何,使用'.eof()'id你的循環條件[**是錯誤的**](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered -錯誤)。 – WhozCraig 2015-01-21 07:26:08