спать и уснуть начать неправильно

В C ++ я использую usleep в моем «основном» пути и вызвать функцию out до.

out();
usleep(4000000);

out просто печатает что-то на экране. К сожалению, печать появляется на экране только через 4 секунды, хотя out() вызов функции перед usleep команда. Я работаю над малиной с малиной. Как может быть, что не первая функция out(); называется, а затем usleep начинается, но наоборот?

-2

Решение

В 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;
3

Другие решения


По вопросам рекламы [email protected]