代码应该向用户询问一个字母,然后显示相当于它的ASCII数字最多3次。但它所做的只是向用户询问角色1次并显示它的ASCII,而它应该问问题3次。
#include <iostream>
using namespace std;
int main() {
char asciiCharacterNumber = 0;
while(asciiCharacterNumber <= 3) {
cout << "Character:: ";
cin >> asciiCharacterNumber;
cout << "Value of ASCII: " << (int)asciiCharacterNumber << endl;
asciiCharacterNumber++;
}
return 0;
}
答案 0 :(得分:4)
您正在(使用cin
)阅读相同的asciiCharacterNumber
变量。由于可打印字符的ASCII值大于3,因此用户通常输入的第一个字符将终止循环。
解决此问题的一种方法是将用于阅读的变量和计数器分开:
int counter = 0;
char asciiCharacterNumber;
while (counter < 3) {
cout << "Character:: ";
cin >> asciiCharacterNumber;
cout << "Value of ASCII: " << (int)asciiCharacterNumber << endl;
counter++;
}
编辑:
如果你想要一个迭代三次的循环,for
循环可能更合适:
char asciiCharacterNumber;
for (int i = 0; i < 3; ++i) {
cout << "Character:: ";
cin >> asciiCharacterNumber;
cout << "Value of ASCII: " << (int)asciiCharacterNumber << endl;
}