두 개의 텍스트 파일을 벡터 배열에 넣은 다음 새 텍스트 파일에 쓰면 병합해야합니다. 병합 후. 새 파일에 추가 문자가 있습니다.두 개의 텍스트 파일을 병합하면 이상한 결과가 나타납니다.
FE : 버퍼의
f1.txt ("text1")
f2.txt ("text2.")
f12.txt ("text1˙text2.˙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;
}
". 텍스트 1, 텍스트 2 W64"여기
코드입니다 . 이유를 말씀해 주시겠습니까?
을'아이디 << ud1.rdbuf() << ud2.rdbuf(); '세 개의 파일을 검증 한 후 성공적으로 단축 할 연 이것 좀 봐. 그리고 관계없이,'.eof()'id를 사용하여 루프 조건 [** is wrong **] (http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered -잘못된). – WhozCraig