传递结构体数组的预期非限定id错误

Passing array of struct expected unqualified id error

本文关键字:id 错误 结构体 数组      更新时间:2023-10-16

在我试图设置RainData[inMonth]的行上,我得到了"在'['令牌之前预期的不合格id"错误。rain = inData。一般来说,我不太确定如何将结构数组传递给函数,或者如何访问传入的元素。你不必写我的代码,但任何帮助和解释,我将不胜感激。

#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
struct RainData
{
    string  name;                          // Name of a month
    double  rain;                          // Rainfall for that month
    RainData(string n ="", double r = 0.0) // Constructor that uses default
    { name = n; rain = r;}                 // values if fewer than 2
};                                         // arguments are passed to it
// Function prototypes
void getData(RainData[], int);
const int NUM_MONTHS = 12;
int main()
{
    RainData month [NUM_MONTHS] = {RainData("January"), RainData("February")... (edited for space);
    getData(month, NUM_MONTHS);
    cin.get();
    return 0;
}

void getData(RainData[], int numElts)
{
    // Enter and store the rainfall for each month
    int inMonth;
    double inData;
    cout << "Enter a month number. (ex. 1 = January) ";
    cin >> inMonth;
    cout << "Enter rain data. ";
    cin >> inData;
    RainData[inMonth].rain = inData;
}

RainData是一个类型,而不是一个变量,这就是为什么你会得到错误。

您忘记在参数中输入名称了:

void getData(RainData someData[], int numElts)

然后:

someData[inMonth].rain = inData;