usleep не работает должным образом в C++, Ubuntu 16.04

Я хочу имитировать ввод текста (как будто кто-то печатал его на экране) во время печати строки. Проще говоря, напечатайте символ, подождите немного, затем напечатайте следующий символ и так далее.

void type(char* str)
{
    if(*str==0)
    {
        return;
    }
    else
    {
        cout << (char)(*str);
        usleep(200000); // should pause for 0.2 seconds after every print
        type(str+1);
    }
}

Таким образом, технически тип ("привет мир") должен печатать каждый символ "привет мира" с интервалом 0,2 секунды. Вместо этого он ждет n*(0,2) секунд (n - длина строки) в начале, а затем печатает всю строку. Это не показывает этот эффект анимации.

Я попытался зацикливание, но эта проблема все еще сохраняется. Итак, что не так с этим кодом?

Я использую Ubuntu 16.04 LTS. GCC v5.3.1 20160413.

Благодарю.

0 ответов

Другие вопросы по тегам