int main() {
int i;
char words[] = "Hello this is text.\n";
for(i = 0; i < strlen(words); i++) {
sleep(1);
putchar(words[i]);
}
}
我一直试图让程序慢慢地逐字输出文本到控制台中(看起来好像有人正在输入它)。然而,当我运行此代码时,我得到一个大的暂停,然后它立即打印整个字符串。我如何让它工作。
(也请不要使用C ++解决方案)
答案 0 :(得分:4)
stdio
以提高效率,编写单个字符不足以让它将缓冲区写入控制台。你需要刷新标准输出:
#include <stdio.h>
int main() {
int i;
char words[] = "Hello this is text.\n";
for(i = 0; i < strlen(words); i++) {
sleep(1);
putchar(words[i]);
fflush(stdout);
}
}
答案 1 :(得分:3)
这是因为默认情况下标准输出是行缓冲的。
在每个字符之后刷新输出:
putchar(words[i]);
fflush(stdout); //<---