输入似乎输出了正确的字符串,但未被接受
Input seems to be putting out correct string, but isn't accepted
所以我试图做一个愚蠢的小控制台响应,因为我很无聊,但由于某种原因,当你尝试删除某些东西时,它不接受它作为正确答案。字符串看起来不错,但是当我尝试用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();
}
相关文章:
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 如何在 C++ 中将双精度数组中的值"force convert"到字符串输出中?
- 尝试从 Visual Studios C++ 中的加密字符串输出解密字符串时出现逻辑错误
- C++添加到字符串(输出)
- 如何将非空终止字符串输出到 iostream,但保持格式
- 有没有一种简单的方法可以将矢量 int 集转换为字符串输出?
- 为什么将字符串输出到未命名的 std::ofstream 反而给了我一个十六进制数?
- CodeBlocks字符串输出定界线
- 如何获得字符串输出的宽度
- 为什么 cout 使用 << 生成正确的字符串输出,而不是使用 +?
- 是通过std :: Wostream定义的char*字符串输出
- 简单的字符串输出不符合预期(出现换行符)
- 使用字符串输出特定答案
- 如何在C++中从十六进制字符串输出 Unicode 字符
- 如何获取md5sum命令并获取代码中的字符串输出
- 需要帮助格式化字符串输出
- 快速C++字符串输出
- 与具有字符串输出参数的 WinAPI 函数的一致性是多少
- 用C++将二进制字符串输出到二进制文件
- Linux控制台的国际UTF-32字符串输出