我是C ++的新手。我正在尝试根据cin中选择的数字将字符串分配给一个月。
这是我在函数中的代码。

cout << "Enter your birth month: ";

cin >> mm;   //Birth Month//

int mm;

std::string month;

if(mm == 5 || mm == 05){
    std::string month = "May";
}
    // If month is equal to 5 or 05, set string variable month to May

cout << "You were born in the month of " << month << endl;


如果mm等于5,我如何将变量“ month”分配给“ may”?

最佳答案

您的字符串变量实际上被if块作用域中的另一个声明遮盖了

if(mm == 5 || mm == 05) {
    std::string month = "May"; // That value is gone after the `}`
}


你可能想写

if(mm == 5) {
    month = "May"; // Note the type declaration is omitted here
}




另请注意,为什么我在上面的示例中省略了mm == 05是因为

if(mm == 5 || mm == 05)


是错的。第二个比较表达式实际上与八进制整数文字进行比较,您当然不想这样做。

if(mm == 5)


足够了。

关于c++ - C++在if语句中分配字符串变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27969508/

10-15 05:56