@Nikita1244
Anonymous

Почему не печатает каждую секунду вывод?

Всем привет. Начал изучение С++. Отмечу, что у меня Линукс.
Моя задача сделать программу-таймер, которая должна выводить каждую секунду вывод.
То есть:
1... 2... 3...
И программа заканчивала свою работу. Делаю это через цикл for.
Подключил библиотеку <unistd.h>, в которой есть функция sleep().
Изначально хотел воспользоваться библиотекой <Windows.h>, но потом понял, что это библиотека только для Windows, а API у Linux и Windows разные.
Так вот, в чем проблема? Моя программа не выводит каждую секунду вывод. Проходит 3 секунды и сразу все выводит.
Мой код:
#include <iostream>
#include <string>
#include <unistd.h>

using namespace std;

int main() {
    setlocale(LC_ALL, "russian");
    sleep(1);
    for (int i = 0; i <= 3; i++) {
        cout << i << "...";
    };

    return 0;
}
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Как-то так надо.
for (int i = 0; i <= 3; i++) {
        std::cout << i << "..." << std::flush;
        sleep(1);
    };

(отредактировано)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы