我创建了一个函数,它返回数组中所有数字的总和,但是我不断收到错误消息:错误:来自' int(*)[6]'到' int' [-fpermissive]。另外我还得到一个错误:错误:初始化' int getTotal(int)' [ - fpermissive]的参数1。似乎这两个错误在一起。我应该使用指针吗?我花了好几个小时试图解决这个问题而没有运气。
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
const int ROWS = 4;
const int COLS = 6;
void openInputFile(ifstream &,string);
int getTotal(int);
using namespace std;
int main()
{
int tot; //total of all numbers
int val;
int twoArray[ROWS][COLS];
ifstream inFile;
string inFileName = "nums.txt";
//Opening file
openInputFile(inFile, inFileName);
//Create 2D array
for(int i=0; i<ROWS; i++)
{
for(int j=0; j<COLS; j++)
{
inFile >> twoArray[i][j];
}
}
//Close
inFile.close();
//THIS IS WHERE ERROR IS
tot = getTotal(twoArray);
printArray(twoArray);
return 0;
}
void openInputFile(ifstream &inFile, string theFile)
{
inFile.open(theFile.c_str());
if(!inFile)
{
cout << "Error opening the file!\n";
exit(13);
}
}
int getTotal(int array[][COLS])
{
int sum = 0;
for(int i=0; i<ROWS; i++)
{
for(int j=0; j<COLS; j++)
{
sum+=array[i][j];
}
}
return sum;
}
int printArray(int array[][COLS])
{
for(int i=0; i<ROWS; i++)
{
for(int j=0; j<COLS; j++)
{
cout << array[i][j] << " ";
}
cout << endl;
}
return 0;
}
答案 0 :(得分:1)
问题在于错误的函数声明。你有代码的开头:
int getTotal(int);
然后将函数定义为:
int getTotal(int array[][COLS])
所以,编辑你的函数声明。顺便说一下,我看不到声明:
int printArray(int array[][COLS]);