编辑:ROW和COLUMN是int值,ROW = 12,COLUMN = 2
int main() {
double list[ROW][COLUMN];
ifstream inFile;
getValidDataFile(inFile);
cout << "Temperature Data for the year " << getYear(inFile) << endl;
getData(inFile, list[][COLUMN], ROW); // Error Line
return 0;
}
错误:&#34;错误:在&#39;]&#39;之前预期的主要表达式令牌&#34; 我需要从文件中获取数据并将其存储在二维数组中。 顺便说一句,这是一项家庭作业
void getData(ifstream& fin, double a[][COLUMN], int ROW) {
int row, col;
double num;
for(row = 0; row < ROW; row++) {
for(col = 0; col < COLUMN; col++) {
fin >> num;
a[row][col] = num;
}
}
}
答案 0 :(得分:2)
当你调用getData()时,你应该传入数组而不指定维度。声明列表[X] [Y]将访问行X列Y中的单个元素。
getData(inFile, list, row);
此外,建议仅对宏使用大写,而不是函数参数:
void getData(ifstream& fin, double a[][COLUMN], int input_row) {
答案 1 :(得分:0)
您可以在声明和定义函数时提及列大小的最大大小,并且像往常一样将数组的基址传递给函数
void print(int p_arr[][10]); //max size of the column -- declaration
int g_row,g_column;//make it as these variables as global;
int main()
{
int l_arr[10][10];//local array
printf("Enter row value and column value");
scanf("%d%d",&g_row,&g_column);
for(int i=0;i<g_row;i++)
{
for(int j=0;j<g_column;j++)
{
scanf("%d",&l_arr[i][j]);
}
}
print(l_arr);//you just pass the array address to the function
return 0;
}
void print(int p_arr[][10])
{
for(int i=0;i<g_row;i++)
{
for(int j=0;j<g_column;j++)
{
printf("%d\t",p_arr[i][j]);
}
printf("\n");
}
return;
}
答案 2 :(得分:-2)
将它作为带有行和列信息的双指针传递会更容易。所以你的代码将是
void getData(ifstream *fin, double** a, int row, int col);
函数定义将保持不变
getData(inFile, list, row, col);
是使用它的方式。