我對編程非常陌生,所以我很抱歉如果這個問題看起來很荒唐簡單。我正在研究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