我对编程非常陌生,所以我很抱歉如果这个问题看起来很荒唐简单。我正在研究C++本书当前章节中的一些额外问题。实际上,我发现问题的答案是正确的,但是在这样做的过程中,我遇到了一个让我发疯的情况,因为我无法弄清楚为什么某个特定的解决方案有效,而另一个解决方案不适用。C++显示字符while循环行
因此,问题要求在每行16个字符的几行中打印32到127之间的ASCII值。我是来(即正常工作)的解决方案是这样的:
#include <iostream>
using namespace std;
int main()
{
char letter;
int count = 0;
for (letter = 32; letter < 127; letter++, count++)
{
if (count == 16)
{
cout << endl;
count = 0;
}
cout << letter << " ";
}
cout << endl;
return 0;
}
再次,上面的代码运行正常和做什么,我想它。困难在于我在此之前尝试过的东西。我试图用一个嵌套while循环做同样的问题,像这样:
#include <iostream>
using namespace std;
int main()
{
char letter = 32;
int count;
while (letter < 127)
{
count = 0;
while (count < 16)
{
cout << letter << " ";
letter++;
count++;
}
cout << endl;
}
cout << endl;
return 0;
}
这个while循环只运行无限,也是ASCII字符我想后吐出一些垃圾,我想不通为什么。更令人沮丧的是,如果我使用while循环将int变量替换为int而不是char,那么它会以我希望的方式运行,并在应该时终止运行,只是显示实际的数字而不是ASCII值。
只有当'字母'是一个字符,我得到一个无限循环。我确信这是一件非常简单的事情,我现在可能太累了,无法看到它,但任何帮助/提示都将非常感谢!尽管我在技术上得到了答案,但我却不知道为什么第二个答案会如此可怕地失败。
在此先感谢。
啊这是非常合情合理的。谢谢! – nik 2012-01-31 18:22:15