У меня вопрос о копировании данных из одного файла в другой на C++ (fstream) с помощью оператора‹‹. Вот фрагмент кода, который работает для меня:
#include <fstream>
#include <string>
void writeTo(string &fname, ofstream &out){
ifstream in;
in.open(fname.c_str(),fstream::binary);
if(in.good()){
out<<in.rdbuf();
in.close();
}else{
//error
}
}
Я хотел бы быть уверен, что после записи был достигнут конец входного файла в потоке in
. Однако, если я проверю на in.eof()
, это будет false
, несмотря на то, что проверка входных и выходных файлов подтверждает, что все содержимое было правильно скопировано. Любые идеи о том, как я могу проверить in.eof()
?
eof
устанавливается, когда вы пытаетесь прочитать за концом ввода, а не когда вы его достигаете. - person Lightness Races in Orbit   schedule 24.05.2011