我遇到了一個奇怪的問題。出於某種原因多個||語句,即使用逗號和括號劃分也不行。我期望的最後一件事是&聲明,它要求滿足這兩個條件,但在我的情況下,它適用於一個條件,就好像它是一個OR語句。C++爲什麼if語句不適用於多個條件? 〜除了用&語句
有人請向我解釋爲什麼會發生這種情況。我很困擾。
WORKS:
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
string quest;
quest = "Where is my dog?";
string::iterator m;
vector<string>question;
string t;
for(m = quest.begin(); m != quest.end(); m++)
{
if(*m != ' ' & *m != ',' & *m != '?' & *m != '.') //works with & and &&
{
t.push_back(*m);
}
else
{
cout << t << endl;
question.push_back(t);
t.clear();
}
}
}
不起作用:
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
string quest;
quest = "Where is my dog?";
string::iterator m;
vector<string>question;
string t;
for(m = quest.begin(); m != quest.end(); m++)
{
if(*m != ' ' || *m != ',' || *m != '?' || *m != '.') // DOES NOT WORK
{
t.push_back(*m);
}
else
{
cout << t << endl;
question.push_back(t);
t.clear();
}
}
}
你有什麼期望第二個輸出的,什麼是它的輸出? – Dani
答覆者,請說明兩者1)發生了什麼事,2)如何正確地做。我不會投一半答案。 –
我希望人們不要投我一票,因爲我不明白,即使這是非常愚蠢的事情。 – VSB