В C ++ я использую usleep
в моем «основном» пути и вызвать функцию out
до.
out();
usleep(4000000);
out
просто печатает что-то на экране. К сожалению, печать появляется на экране только через 4 секунды, хотя out()
вызов функции перед usleep
команда. Я работаю над малиной с малиной. Как может быть, что не первая функция out()
; называется, а затем usleep
начинается, но наоборот?
В C ++ для уменьшения времени ввода-вывода мы буферизовали вывод. Это означает, что вызовы, которые записывают на экран / диск, не всегда записывают на реальное устройство.
Давайте возьмем для примера этот код:
for (int x = 0; x < 10000; x++)
std::cout << "a";
Если «а» будет записываться на экран каждый раз, это займет много времени. Вместо этого весь буфер записывается каждые n символов.
Чтобы записать не полный буфер на экран, у вас есть несколько вариантов:
Используйте std :: flush вот так:
std::cout << std::flush;
Std :: endl также использует flush:
std::cout << std::endl;