Я пытаюсь запрограммировать простой эффект «пишущей машинки» на C, где текст появляется по одной букве за раз с задержкой. Вот эта функция у меня есть:Вывод не отображается с помощью usleep до тех пор, пока не будет указан разрыв строки
#include <stdio.h>
#include <unistd.h>
void typestring(const char *str, useconds_t delay)
{
while (*str) {
putchar(*(str++));
usleep(delay);
}
}
Проблема заключается в том, что текст не на самом деле появляется, пока не появится \n
. Что я делаю не так?
Я был предостерегли так много раз против fflush() штучка, особенно fflush (STDIN), что я вышел с помощью fflush() в целом. –
Может ли кто-нибудь дать альтернативное решение этой проблемы с пишущей машиной без использования fflush()? –
Я не знаю, если это возможно в Windows, но в Linux вы можете использовать '' и установить для терминала небуферизацию. Посмотрите ссылку в моем посте –