Cout in循环不会按定义的char打印char

时间:2018-01-14 19:12:26

标签: c++ string delay cout

我最近开始在大学学习C ++,并决定在家里取得一些进步。我有一个想法,即制作一个程序,在给定一段文字的情况下,将逐字符地打印出这样的文本,并且中间有一点延迟(如本视频SUPER.HOT chat中所示)。

我尝试使用一个简单的程序重新创建它:

void typer(string text){

for (int i = 0; i < text.length(); i++){
    cout << text[i];
    usleep(100000);
}

但是当usleep()设置在103900以下时,它将一次开始打印两个字符。我打算一次打印一次但很快。

有什么建议吗? :d

2 个答案:

答案 0 :(得分:2)

您需要刷新流,否则将被缓存

cout.flush();

http://www.cplusplus.com/reference/ostream/basic_ostream/flush/

答案 1 :(得分:1)

您需要刷新输出

 cout << text[i] << flush;

The usleep() function成功返回0。出错时,返回-1,并设置errno以指示错误原因。

错误 EINTR信号中断;见信号(7)。

EINVAL usec不小于1000000。 (在被认为是错误的系统上。)