If语句不会cout并且并没有错误,(根据Xcode

If-statement wont cout and there are no errors, (according to Xcode

本文关键字:有错误 Xcode 根据 语句 cout If      更新时间:2023-10-16

一旦程序到达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;
}
std::cin >> team;

这读起来只有一个字。如果输入"Arizona Diamondbacks",则team将设置为"Arizona"。您可以使用getline来读取整行输入:

std::getline(std::cin, team);

std::stringifstream提取运算符>>提取以空格分隔的字符串。因此,您的cin >> team在用户输入的第一个空格/选项卡处停止。您需要使用一个读取整行内容的函数。

我认为这是用于获取字符串输入的cin >> team;的问题。尝试使用getline

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