神秘的循环错误

| 我正在使用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(及更低的数字)却没有。如果以前有人遇到过这种情况,我一定会很高兴听到他/她如何解决它。     
已邀请:
也许屏幕只是滚动? 尝试将输出重定向到文本文件     
这看起来很奇怪,我运行了您的第一个程序并得到了我期望的结果:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
但是,我注意到您使用gcc作为编译器。这是针对c编程的。最好像我一样使用g ++。它在这里工作正常。 (我真的很惊讶gcc编译:/)     

要回复问题请先登录注册