C++字符串操作 - 如果是stament

use*_*514 0 c++ string if-statement

我有以下代码正常工作.但是在我添加一个else语句后,任何事情总是会计算到else

wgetstr(inputWin, ch); //get line and store in ch variable
        str = ch;          //make input from char* to string


        if(str=="m" || str=="M"){
            showFeedback("Data Memory Updated");
        }
        if(str=="p" || str=="P"){
            showFeedback("Program Memory Updated");
        }
        if(str=="g" || str=="G"){
            showFeedback("Accumulator, Program Counter, Zero Result Updated");
        }
        if(str=="e" || str=="E"){
            showFeedback("Editing Mode Enabled");
        }
        if(str=="c" || str=="C"){
            showFeedback("Program Copied Into Program Memory");
        }
        if(str=="r" || str=="R"){
            showFeedback("Executing Program");
        }
        if(str=="x" || str=="X"){
            showFeedback("Program Exited");
        }
Run Code Online (Sandbox Code Playgroud)

之前的所有内容都根据输入的正确评估.即如果我输入"m",它就会调用showeFeedback("Data Memory Updated"),但是如果我添加以下else语句,无论我输入什么,我总是得到"Invalid Command Entered".

else{
            showFeedback("Invalid Command Entered");
        }
Run Code Online (Sandbox Code Playgroud)

Mic*_*fik 9

所有这些都是单独的if语句.您添加的其他内容仅适用于最后一个.更改除了第一个if之外的所有内容else if,它应该像您期望的那样工作.


Bri*_*ndy 5

如果除了第一个之外的所有内容,您需要使用else.

因此,对现有代码进行简单的更改:

        if(str=="m" || str=="M"){
            showFeedback("Data Memory Updated");
        }
        else if(str=="p" || str=="P"){
            showFeedback("Program Memory Updated");
        }
        else if(str=="g" || str=="G"){
            showFeedback("Accumulator, Program Counter, Zero Result Updated");
        }
        else if(str=="e" || str=="E"){
            showFeedback("Editing Mode Enabled");
        }
        else if(str=="c" || str=="C"){
            showFeedback("Program Copied Into Program Memory");
        }
        else if(str=="r" || str=="R"){
            showFeedback("Executing Program");
        }
        else if(str=="x" || str=="X"){
            showFeedback("Program Exited");
        }
        else
        {
            showFeedback("Invalid Command Entered");
        }
Run Code Online (Sandbox Code Playgroud)