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.
Благодарю.