【发布时间】:2013-04-22 08:16:46
【问题描述】:
我正在尝试用 C 编写一个简单的“打字机”效果,其中文本一次出现一个字母,但有延迟。这是我的功能:
#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 中你可以使用
<termios.h>并将终端设置为非缓冲。查看我帖子中的链接