我不知道这是否与ostream中的flush有关。因为,endl是以flush结尾的,对吗?我不知道flush是什么以及它如何工作。
我有一个函数,每秒钟打印一次字符串中的每个字符。我想在每个字符后面不换行打印它。然后,我写了这个函数:
using namespace std;
void print_char_per_second (string text) {
int i = 0;
int len = static_cast<int>(text.length());
while (i < len) {
int tick = clock() % CLOCKS_PER_SEC;
if (tick == 0) {
cout << text[i];
i++;
}
}
}
循环结束后,它会将文本逐个打印出来,并一次性打印出文本中的所有字符。为什么会这样呢?
flush
如何工作的答案。 - rshtint tick = clock() % CLOCKS_PER_SEC; if (tick == 0)
太严格了。不能保证每次调用clock()
时返回的值比上一次调用大一。 - Lingxi