-3

一旦程序到达 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;
}
4

3 回答 3

2
std::cin >> team;

这读一个字。如果您输入“Arizona Diamondbacks”,team则设置为"Arizona". 您可以getline改为使用来读取整行输入:

std::getline(std::cin, team);
于 2013-07-01T16:49:10.387 回答
2

a的ifstream提取运算符>>提取以std::string空格分隔的字符串。因此,您cin >> team将停在用户输入中的第一个空格/制表符处。您需要使用一个读取整行的函数。

于 2013-07-01T16:50:07.287 回答
1

我认为它与您cin >> team;用来获取字符串输入的问题有关。尝试使用getline

当出现空格字符时, cin停止输入。

于 2013-07-01T16:57:28.613 回答