Если вы не очищаете свой вывод, ваш вывод не гарантированно будет виден за пределами вашей программы.Тот факт, что он не печатает в вашем терминале, является лишь следствием поведения по умолчанию в linux для буферизации строк, когда вывод tty.Если вы запустите свою программу в Linux с выводом ее по другому каналу, например
./your_program | cat
, тогда буфер по умолчанию будет НАМНОГО больше, скорее всего он будет не менее 4096 байт.Так что ничего не будет отображаться, пока большой буфер не заполнится.но на самом деле поведение зависит от ОС, если вы сами не сбросите std :: cout.
Чтобы сбросить std :: cout, используйте также:
std::cout << std::flush;
, используя
std::cout << std::endl;
является ярлыком для
std::cout << '\n' << std::flush;