c++ - 神秘的 For 循环错误

标签 c++ gcc for-loop ubuntu-10.10

我正在使用 Ubuntu 10.10、Codeblocks IDE 和 gcc 编译器。我注意到我正在编写的程序正在创建一些奇怪的输出。最终我将问题范围缩小到程序中的 for 循环。我惊讶地发现以下基本 for 循环没有按预期执行。

#include <iostream>

using namespace std;

int main()
{


for(unsigned int i = 0; i < 21; i++)
    {
    cout << i << endl;
    }

return 0;

}

当我编译并运行它时,输出是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

尽管人们期望输出应该包含零。非常令人惊讶的是,当我将 for 循环更改为

#include <iostream>

using namespace std;

int main()
{


for(unsigned int i = 0; i < 20; i++)
    {
    cout << i << endl;
    }

return 0;

}

我得到的预期输出:

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

我一生都无法弄清楚为什么 21(以及所有大于 21 的数字)会给我这个错误的输出,而 20(以及更低的数字)却不会。如果有人以前遇到过类似的事情,我很高兴听到他/她如何解决这个问题。

最佳答案

也许屏幕只是滚动?

尝试将输出重定向到文本文件

关于c++ - 神秘的 For 循环错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5775416/

相关文章:

c++ - 如何调用基于特定派生类的方法

android - 在 Android 上编译 NEON 代码时出错

c++ - RedHat 上 GCC 4.4.5 中的运行时问题,但在 Apple llvm 4.2 上运行正常?

python - 写入文件循环问题

r - 如何从 R 中的嵌套 for 循环创建向量?

c++ - 我可以在实例化模板时从 const 类型模板参数中获取 const 相关名称吗?

c++ - 当元素被包裹在智能指针中时,std::set 是否仍然排序?

javascript - 在循环中创建一个深度(水平)对象

c++ - 为什么我的自定义信号处理程序会让子进程在比较 pid 时得到 SIGTTIN

c - gcc -o 错误命令后如何恢复源代码