2017-06-05 31 views
-4
#include <iostream> 
#include <string> 
#include <sstream> 

using namespace std; 

int main() { 

    string gun = ""; 
    cout << "Enter The Gun You Would Like To Know The Type Of Ammo For: \n"; 
    getline(cin, gun); 
    if (gun == "b95" || "B95" || "windchester" || "wind chester" || "Windchester" || "Wind Chester" || "longhorn" || "Long Horn" || "fal" || "FAL") 
    { 
     cout << "The Type Of Ammo For The " << gun << " Is 308 Windchester"; 
    } 
    if (gun == "izh rifle" || "IZH Rifle" || "izhrifle" || "izh rifle" || "sks" || "SKS" || "akm" || "AKM") 
    { 
     cout << "The Type Of Ammo For The " << gun << " 7.62x39mm"; 
    } 
    if (gun == "Mangnum" || "mangnum" || "Repetor" || "repetor") 
    { 
     cout << "The Type Of Ammo For The " << gun << ".357"; 
    } 
    return 0; 
} 

当程序运行时,例如我会输入sks,它会输出所有的cout消息,例如:对于sks的弹药类型是308 WindchesterThe类型的弹药对于sks 7.62x39mmThe类型的弹药对于sks.357试图获得用户输入和输出一个消息,当我输入一个有效的名字时,它会全部输出

+3

如果条件不符合你的要求,请[读一本好书](https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)并从它学习C++而不是猜测。 – Rakete1111

回答

0

如果条件不起作用这种方式。 如果你想要这个,你必须把它写这样的:

if (gun == "izh rifle" || gun == "IZH Rifle" || gun == "izhrifle" || gun == "izh rifle" || 
    gun == "sks" ||gun == "SKS" ||gun == "akm" ||gun == "AKM") 

基本上适当的比较需要两个值进行比较,不只是一个。

0

您不能在C++中编写像这样的布尔表达式。布尔表达式的每一边都是一个布尔值,所以在你的情况下,所有三个if总是为真,因为非空字符串在布尔表达式中是true。 请阅读关于布尔表达式并写出如 如果(输入==“str1”||输入==“str2”等)