为什么我会收到错误:"与 std 中的操作员>>不匹配"?

Why am I receiving an error: 'No match for operator >> in std'?

本文关键字:gt 操作员 不匹配 错误 为什么 std      更新时间:2023-10-16

我似乎不明白为什么我会收到以下代码的错误。我尝试重写代码,但它似乎没有纠正问题。它不应该给我一个我可以看到的错误。

#include <iostream>
using namespace std;
int main()
{
    int month[12] = {0, 31, 60, 91, 121, 152, 182, 213, 243, 274, 305, 335};
    int  year, dayNumber, day;
    cout<< "Please enter the month, by numerical value:";
    cin >> month;
    cout<<"Please enter the day, by numerical value:";
    cin >> day;
    cout<<"Please enter the year, by numerical value:";
    cin >> year;
month是一个

数组,所以它不支持像cin >> month;这样的语法

根据逻辑,我认为您需要一个不同的月份编号变量,从 1 到 12。

int month_start_days[12] = {0, 31, 60, 91, 121, 152, 182, 213, 243, 274, 305, 335};
int  year, dayNumber, day, month;
cout<< "Please enter the month, by numerical value:";
cin >> month;
运算符

>>不会重载数组。

int month_index;
cin >> month_index;

此操作失败,因为月份是一个数组

cin >> month; 

cin >> month;

导致错误,你不能这样输入数组。

您可能想要的是使用单独的可输入month输入。

这作为一个简单的示例(仅当您希望修改数组时(:

std::cin >> month[0]; // first element

具体来说,在此状态下,您只能访问范围内的某个索引。