输入似乎输出了正确的字符串,但未被接受

Input seems to be putting out correct string, but isn't accepted

本文关键字:字符串 输出 输入      更新时间:2023-10-16

所以我试图做一个愚蠢的小控制台响应,因为我很无聊,但由于某种原因,当你尝试删除某些东西时,它不接受它作为正确答案。字符串看起来不错,但是当我尝试用if(a==b)或类似的东西检查它时,它不会有任何字符串。代码如下:

string entry(){
    string input = "";
    char ch = getch();
    while (ch != 'r'){
        if (ch != '.'){
            ch = tolower(ch);
            input += ch;
            cout<<ch;
            ch = getch();
        }
        else if (ch == '.'){
            cout<<ch;
            ch=getch();
        }
        else if (ch == 'b'){
            cout<<'b';
            input.resize((input.length()-1));
        }
    }
    cout << "n"+input;
    return input;
}

这将被类似的东西使用 a=entry(); ,但是,正如我已经说过的,它不适用于任何if语句。

您有 2 个涵盖整个频谱的条件,然后是另一个条件 - 永远不会被采用:

if (ch != '.') {
   // something
else if (ch == '.') {
   // something else
} 

如果ch不是.,或者是.则涵盖所有选项。它相当于

if (ch != '.') {
   // something
else {
   // something else
}     

您需要从第一个 if 中排除b字符。

如果

ch != '.')也符合这种情况,则永远无法到达ch == 'b'作为第一个。也许恢复顺序:

    if (ch == '.'){
        cout<<ch;
        ch=getch();
    }
    else if (ch == 'b'){
        cout<<'b';
        input.resize((input.length()-1));
    }
    else{
        ch = tolower(ch);
        input += ch;
        cout<<ch;
        ch = getch();
    }