C ++ записывает в выходной поток, хранящийся в буфере. Вам нужно очистить буфер, чтобы записать его в консоль. Помните, как вы, вероятно, научились писать строки в консоли?
std::cout << "This is a message" << std::endl;
Что делает std :: endl, так это помещает символ новой строки в конец сообщения и очищает буфер. Исходя из вашего кода, я думаю, вы подумали: «Эй, я могу просто прекратить работу, и это не напишет новую строку». Это хороший способ думать ... но вы, вероятно, не понимали, что endl также очищает буфер. Это то, что вы хотите:
std::cout << "Writing to file" << std::flush;
Также обратите внимание, как я поставил перед cout префикс «std». Использование «стандарта пространства имен» - это плохая практика, которую следует избегать.
В связанной заметке вы уже используете C ++. Вместо файлового ввода-вывода старый способ C fprintf, вместо этого настройте файловый поток. Он работает почти так же, как консольный IO. Вот отличное руководство о том, как делать то, что вы делаете, более идиоматическим образом: http://www.cplusplus.com/doc/tutorial/files/