Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 即使输入正确,我的Else也无法显示_C++ - Fatal编程技术网

C++ 即使输入正确,我的Else也无法显示

C++ 即使输入正确,我的Else也无法显示,c++,C++,即使我输入了毕达哥拉斯或概率,它仍会显示我的else输出“主题不受支持”如何解决此问题? search=“毕达哥拉斯”; pos=句子。查找(搜索); if(pos!=字符串::npos) cout如果你的句子包含“毕达哥拉斯”,它将通过第一个If(输出那里的内容),然后继续“else”检查“Probability”-你在句子中找到“毕达哥拉斯”后不会中断执行,它将进入第二个If,输出“未找到主题”中的内容,因为“概率”!=“毕达哥拉斯”。如果你把“概率”放在句子中,“topicnotfound

即使我输入了毕达哥拉斯或概率,它仍会显示我的else输出“主题不受支持”如何解决此问题?

search=“毕达哥拉斯”;
pos=句子。查找(搜索);
if(pos!=字符串::npos)
cout如果你的句子包含“毕达哥拉斯”,它将通过第一个If(输出那里的内容),然后继续“else”检查“Probability”-你在句子中找到“毕达哥拉斯”后不会中断执行,它将进入第二个If,输出“未找到主题”中的内容,因为“概率”!=“毕达哥拉斯”。如果你把“概率”放在句子中,“topicnotfound”不应该被输出,除非你没有向我们展示你实际使用的代码

为了解决这个问题,我建议使用一个布尔标志,比如

bool flag = false;
search = "Pythagoras";
pos = sentence.find(search);
if (pos != string::npos)                    
{
    cout << "pythagoras" << endl;
    flag = true;
}
search = "Probability";
pos = sentence.find(search);
if (pos != string::npos)
{                    
    cout << "probability" << endl; 
    flag = true;
}

if (!flag)
    cout << "not supported" << endl;
bool标志=false;
search=“毕达哥拉斯”;
pos=句子。查找(搜索);
if(pos!=字符串::npos)
{

不欢迎使用堆栈溢出!听起来你可能需要学习如何使用调试器来逐步完成代码。有了一个好的调试器,你可以逐行执行你的程序,看看它偏离了你的预期。如果你要做任何编程,这是一个必不可少的工具。进一步阅读:顺便说一句:你不必把c在一行中完成输出。就像您通过
\n
为代码用户进行格式化一样,您应该使代码可读,让阅读代码的人可以阅读……btw2:您根本不需要在问题中包含该文本来演示问题,简短的
就行了谢谢您的帮助,对不起,我是这个网站的新手!就这样我的代码没有明显的问题吗?
else
仅适用于第二个
if
语句。因此,如果未找到“概率”,它将始终打印“主题不受支持…”,即使是“毕达哥拉斯”找到了。这就是我想的,我该如何解决这个问题?@James941确保投票并接受答案,如果你认为答案令人满意:)
bool flag = false;
search = "Pythagoras";
pos = sentence.find(search);
if (pos != string::npos)                    
{
    cout << "pythagoras" << endl;
    flag = true;
}
search = "Probability";
pos = sentence.find(search);
if (pos != string::npos)
{                    
    cout << "probability" << endl; 
    flag = true;
}

if (!flag)
    cout << "not supported" << endl;