【发布时间】:2014-02-28 17:45:00
【问题描述】:
我有一个我完全无法解决的问题!
在我的程序中,用户输入要排序的数字。我必须能够对无穷大、负无穷大和所谓的“Nullity”(我在程序的早期定义)进行排序
如果用户想输入无穷大,例如,他们必须在字符串中输入“Pinf”。
我的问题是我将用户输入存储在 std::string 中,然后检查字符串是“pinf”还是“Pinf”,即使我输入了数字 3,所以字符串是“3”,它仍然可以进入if语句,我做错了什么?!
我的代码如下;
string Temp;
cin>> Temp;
if (Temp.find("Pinf")||Temp.find("pinf")) {
Num = Pinfinity;
}
它每次都认为 if 语句为真。
【问题讨论】:
-
您使用的是位
|运算符而不是逻辑||运算符。 -
您的意思是
||而不是|吗?如果单词首先作为句子的一部分出现,则逻辑不正确。 -
除了不正确的操作符,read the documentation.
-
我改变了它,以便它使用 ||而不是 |仍然进入 if 语句
-
解决了这两个问题 |到 ||但我也必须使用
if (Temp == "Pinf" || Temp == "pinf") {
标签: c++ string if-statement comparison infinity