While循环中的计数奇怪的行为
Cout in While loop Strange behaviour
我的代码如下
int i=0;
while(i<10){
cout<<"Hello";
sleep(1);
i++
}
在Windows中,代码在每个循环上打印,但在Linux中,它在退出while循环后打印所有内容。如果我把endl放在cout的最后,那么它会在每个循环中打印。为什么会这样?有人能解释这种行为吗?
尝试使用cout.flush()
;也许这两个操作系统在缓冲标准输出方面有不同的策略。
出于效率的考虑,有时标准流将使用缓冲区实现。进行大量微小的写操作可能很慢,因此它会将您的写操作存储起来,直到它获得一定数量的数据,然后再一次将其全部写出来。
Endl强制它写出当前缓冲区,因此您将立即看到输出。
#include <iostream>
using namespace std;
int main()
{
int i = 0;
while(i < 10){
cout << "Hello" << endl;
sleep(1);
++i;
}
}
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- while循环中while循环的时间复杂度是多少
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 擦除while循环中迭代的元素
- 为什么我不能在 while 循环中创建线程?
- 退出简单while循环时出现问题
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 即使没有满足他们的条件,我也无法通过一些 do-while 循环
- 嵌套While循环不起作用(C++问题)
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 使用 GMP 的 while 循环出现问题
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 为什么在 while 循环中返回表达式不起作用
- 如何使用 do while 循环确定最高值和最低值
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 用于在 C++ 中使用 while 循环查找下一个素数的简单函数
- OpenCV QT,显示视频的帧(不使用while循环)
- 输入循环 while 函数
- c++中的循环(while)
- 为什么这段代码没有循环(while)