所以我试图做一个愚蠢的小控制台响应的事情,因为我很无聊,但由于某种原因,当你试图删除某些东西时,它不会接受它作为正确答案。字符串看起来很好,但是当我尝试使用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
语句。
答案 0 :(得分:0)
你有两个条件覆盖整个范围,然后是另一个条件 - 这是永远不会采取的:
if (ch != '.') {
// something
else if (ch == '.') {
// something else
}
如果ch
不是.
或.
涵盖所有选项。它相当于
if (ch != '.') {
// something
else {
// something else
}
您需要从第1个if中排除\b
个字符。
答案 1 :(得分:0)
ch == '\b'
永远无法到达,因为第一个if(ch != '.'
)也匹配该情况。也许还原顺序:
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();
}