While loop and char

While loop and char

本文关键字:char and loop While      更新时间:2023-10-16

代码应该询问用户一个字母,然后显示相当于该字母的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;
}

您正在读取(使用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;
}