一旦程序进入if语句,它就会忽略它并停止。 Xcode说没有错误,所以我不知道发生了什么。
#include <iostream>
#include <string>
int main()
{
std::string team;
std::cout << "Welcome to The Baseball game!\n" << std::endl;
std::cout << "choose a team.\n";
std::cin >> team;
if (team == "Arizona Diamondbacks") //this is were it stops working
{
std::cout << "You chose the Arizona Diamondbacks, here is your lineup:" << std::endl << "1. RF Gerrardo Parra" << std::endl << "2. 2B Willie Bloomquist" << std::endl << "3. 1B Paul Goldschmidt" << std::endl << "4. C Miguel Montero" << std::endl << "5. LF Jason Kubel" << std::endl << "6. CF A.J. Pollock" << std::endl << "7. SS Didi Gregorius" << std::endl << "8. 3B Cliff Pennington" << std::endl << "9. SP Patrick Corbin" << std::endl << "your starting pitcher will be Patrick Corbin.\n";
}
if (team == "Atlanta Braves")
{
std::cout << "you chose the Atlanta Braves";
}
return 0;
}
答案 0 :(得分:2)
std::cin >> team;
这只读一个字。如果您输入“Arizona Diamondbacks”,team
将设置为"Arizona"
。您可以使用getline
来阅读整行输入:
std::getline(std::cin, team);
答案 1 :(得分:2)
ifstream
的{{1}}提取运算符>>
提取以空格分隔的字符串。所以你的std::string
停在用户输入的第一个空格/标签处。您需要使用一个读取整行的函数。
答案 2 :(得分:1)
我认为您使用cin >> team;
来获取字符串输入的问题。尝试使用 getline
cin 会停止输入。