我的程序的目标是将文件中的数据加载到销售数组中,然后在移动到下一个城市之前显示每个城市每天的销售额。我在将二维 SalesArray 传递给我的其他函数时遇到问题。我很确定这是因为我在 global 和 main 中声明它的方式。我在组织它时也遇到了问题,因此它会相应地显示每个城市和日期。
任何帮助都会很棒。谢谢
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
#include <time.h>
using namespace std;
double SalesArray;
void GetSales();
void DisplaySales(double SalesArray[5][4]);
int main(){
DisplayHeading();
GetSales();
DisplaySales(double(SalesArray)[5][4]) ;
cout << endl;
system("pause");
return 0;
}
void GetSales(){
double SalesArray[5][4];
ifstream indata;
indata.open("sales.txt");
for (int row = 0; row < 5; row++){
for (int col = 0; col < 4; col++){
indata >> SalesArray[row][col] ;
}
}
//Close the File
//indata.close();
//cout << endl;
}
void DisplaySales(double SalesArray[5][4]){
for (int row = 0; row < 5; row++){
for (int col = 0; col < 4; col++){
cout << fixed << setprecision(2) << SalesArray[row][col] << endl;
}
}
// Array for City
const int SIZE = 5;
string city[SIZE] = {"New York" , "LA" ,
"Chicago" , "Springfield" ,
"Prophetstown" };
for (int count = 0; count < SIZE; count ++){
cout << city[count] << endl;
}
// Array for Days
const int SALES = 4;
string days[SALES] = {"Friday" , "Saturday" ,
"Sunday" , "Monday"
};
for (int count = 0; count < SALES; count ++){
cout << days[count] << endl;
}
}
最佳答案
是的,在 GetSales();
中删除 SalesArray
的本地声明更好,使它成为一个参数并像 DisplaySales()< 一样传递它
.
此外,您应该传入所有 SalesArray
,而不是 [5][4]
处的元素。
DisplaySales( SalesArray );
注意... [5][4]
处的元素超出了数组的末尾。在 C
中,您声明大小 N
,但仅索引到 N-1
。
关于c++ - 二维数组 C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20483783/