#terminal #cpp #sublime_text
Работаю в Ubuntu 14.04 x86, Sublime Text 2 + терминал Странность высветилась во время вывода строки перед длительной операцией. Я использовал выделение большого кол-ва памяти: MyType* type; long int MyNumber = 3000000; cout << "Initialization... "; MyType* type = new MyType[MyNumber]; cout << "Done! << endl; По всей логике вывод терминала должен быть следующим: Initialization...*пауза* Done! Но по какой-то причине пауза проходит вначале, а две строки выводятся одновременно. *пауза* Initialization... Done! После добавления к выводу первой строки команды endl первая надпись срабатывает так, как нужно. Initialization... *пауза* Done! Что за особенность работы терминала такая?
Ответы
Ответ 1
Это не особенность терминала, а свойство всех буферизированных потоков вывода. Пока не будет вызван метод flush(), или в поток не попадёт \n - данные из буфера не будут переданы на устройство.
Комментариев нет:
Отправить комментарий