Проблема в расположении «курсора» (то есть маркера) после оператора:
fout << "hello world";
Иллюстрация:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string str;
ifstream fin("Asort.txt");
ofstream fout("Asort.txt");
fout << "hello world"; //output to cout this statement(fout.tellp()) to see where the marker is at this point in the stream
fout.seekp(0); //reset the marker in the fout stream to the beginning
getline(fin, str);
cout << str;
}
Курсор теперь в конце потока. Поэтому вы должны использовать: fout.seekp (0); чтобы получить его в начале, чтобы плавник мог начать чтение с начала потока.