神秘的for循环错误
Mystifying For-Loop Error
我使用的是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编译成:/)
相关文章:
- 带有开关语句的 do-while 循环 -- 无穷循环错误
- C++ 中的类之间的数据重新循环 - 错误:'<class name>'未在此范围内声明
- 我在 c ++ 中有一个循环错误
- 无法发现嵌套的循环错误
- CPP 在读取结构数据时无限循环错误?
- 虽然循环错误:"Uninitialized local variable used"
- 如何修复关卡顺序遍历问题(二叉树)的无限循环错误
- 随机密码生成器的C++循环错误"以非零状态退出"
- <BadPtr> 循环错误
- 试图在C++中验证双精度有效输入的循环错误
- c++中的switchcase无限循环错误
- 文件IO循环错误
- for循环错误地输出指数
- 输入 Ctrl+Z 结束阅读单词将导致循环错误
- C++教授无法弄清楚的循环错误
- C++If循环错误
- 建议处理while循环错误
- 使用自动输入循环错误"auto must have an initializer"
- 输入数字时出现循环错误
- C++ "if"循环中的循环错误