C++ 为什么这个节目只有couting2?不管我输入什么

C++ 为什么这个节目只有couting2?不管我输入什么,c++,C++,我被要求制作一个程序,读取字母代码a到Z,并打印相应的电话号码。 该程序使用哨兵控制的while循环。要停止程序,将提示用户输入 哨兵,就是#。e、 g MIU=648(与旧诺基亚手机一样) 其中2=(A,B,C) 这是我的代码,但问题是它只能是“2”。。知道为什么吗 int main() { char x; cin >> x; while (x != '#') { if (x == 'A', 'B'

我被要求制作一个程序,读取字母代码a到Z,并打印相应的电话号码。 该程序使用哨兵控制的while循环。要停止程序,将提示用户输入 哨兵,就是#。e、 g MIU=648(与旧诺基亚手机一样) 其中2=(A,B,C)

这是我的代码,但问题是它只能是“2”。。知道为什么吗

int main() {

        char x;
        cin >> x;   

        while (x != '#') {

            if (x == 'A', 'B', 'C')
                cout << 2;
            else if (x == 'G', 'H', 'I')
                cout << "4";
            else if (x == 'M', 'N', 'O')
                cout << 6;
            else if (x == 'T', 'U', 'V')
                cout << 8;
            else if (x == 'D', 'E', 'F')
                cout << 3;
            else if (x == 'J', 'K', 'L')
                cout << 5;
            else if (x == 'P', 'Q', 'R', 'S')
                cout << 7;
            else if (x == 'W', 'X', 'Y', 'Z')
                cout << 9;
                cin >> x;
            }
        }
intmain(){
字符x;
cin>>x;
而(x!='#'){
如果(x='A','B','C')

CUT< P>不能使用C++中的<代码>、<代码> >操作符,

if (x == 'A', 'B', 'C')
    cout << 2;
有时在if语句中如何使用
,如下所示

int x=2;
int y;
if (y=x+5, y == 7)
    cout << y << " == 7"; // Works
intx=2;
int-y;
如果(y=x+5,y=7)

cout这里您使用了或运算符而不是逗号“,”。我正在修改您的代码并附上程序的屏幕截图。 请尝试下面的代码

#include<stdio.h>
#include<iostream>
using namespace std;
int main() {

    char x;
    cin >> x;

    while (x != '#') {

        if (x == 'A' || x == 'B' || x == 'C')
            cout << 2;
        else if (x == 'G' || x == 'H' || x == 'I')
            cout << "4";
        else if (x == 'M' || x == 'N' || x == 'O')
            cout << 6;
        else if (x == 'T' || x == 'U' || x == 'V')
            cout << 8;
        else if (x == 'D' || x == 'E' || x == 'F')
            cout << 3;
        else if (x == 'J' || x == 'K' || x == 'L')
            cout << 5;
        else if (x == 'P' || x == 'Q' || x == 'R' || x == 'S')
            cout << 7;
        else if (x == 'W' || x == 'X' || x == 'Y' || x == 'Z')
            cout << 9;
        cin >> x;
    }
    return 0;
} 
#包括
#包括
使用名称空间std;
int main(){
字符x;
cin>>x;
而(x!='#'){
如果(x='A'| | x='B'| | x='C')

旁白:我用一个开关试过了,它有点有效。唯一的问题是它一直在循环。例如,如果我输入“M”,它会无限循环6次,如果你能解释原因的话,那就太好了。谢谢你,它必须是
如果(x='a'| x='B'| x='C')
等等。你有没有看到任何类似
如果(x='P','Q','R','S'))在你的C++教科书中,你没有发明语义,第二个CIN只发生在你输入的情况下。W@KrzysztofSkowronek:事实上,这是不正确的。但是他的缩进很糟糕。你可以使用它-但它不能做你想要的。@sirgay它确实可以编译,而且几乎可以保证
y=x+5
将在之前执行de>y==7
除非
被重载,这是非常不寻常的。
#include<stdio.h>
#include<iostream>
using namespace std;
int main() {

    char x;
    cin >> x;

    while (x != '#') {

        if (x == 'A' || x == 'B' || x == 'C')
            cout << 2;
        else if (x == 'G' || x == 'H' || x == 'I')
            cout << "4";
        else if (x == 'M' || x == 'N' || x == 'O')
            cout << 6;
        else if (x == 'T' || x == 'U' || x == 'V')
            cout << 8;
        else if (x == 'D' || x == 'E' || x == 'F')
            cout << 3;
        else if (x == 'J' || x == 'K' || x == 'L')
            cout << 5;
        else if (x == 'P' || x == 'Q' || x == 'R' || x == 'S')
            cout << 7;
        else if (x == 'W' || x == 'X' || x == 'Y' || x == 'Z')
            cout << 9;
        cin >> x;
    }
    return 0;
}