«Я создан вручную document1.txt
и document2.txt
»
В случае, если вы запускаете вашу программу непосредственно из Visual Studio, обратите внимание, что рабочий каталог устанавливается в $(ProjectDir)
по умолчанию, то есть эти файлы должны быть помещены в тот же каталог, где находится файл вашего проекта (.vcproj
/.vcxproj
).
Вы можете либо поместить их в соответствующий каталог или указать полный путь, например, размещать их непосредственно C:
и в коде сделать:
ifstream in("C:\\document1.txt");
ofstream out("C:\\document2.txt");
Это то, что вы заметите, если вы выводимый что-то в случае ошибки при открытии:
if (!out.is_open())
{
std::cout << "ERROR: Can not open document2.txt" << std::endl;
return -1;
}
Заметим, что в этом случае вы не на самом деле нужно, чтобы очистить любой буфер, ни закрывать потоки в явном виде. Все это произойдет автоматически, когда эти объекты будут уничтожены, то есть когда выполнение выходит за рамки.
Вы проверили, действительно ли файлы открыты? –
Вы не являетесь экспликацией, закрывающей потоки, поэтому они не будут размыты/закрыты, пока они не выйдут из сферы действия. Является ли это вашей всей программой, или что-то другое происходит потом? – benjymous
@ Ali Alamiri. Спасибо за ваш ответ. Я создал их вручную в начале. Это может быть проблема? – Simplicity