【发布时间】:2015-12-06 03:32:24
【问题描述】:
我正在尝试基于文本文件输入创建一个Magic Square 程序。我被困在阵列上。我需要从'n'数字中获取数组的大小,然后将行和列的值存储在二维数组中。 下面是文本文件中的一个示例:
3
4 9 2
3 5 7
8 1 6
3 将是 n,然后我需要一个二维数组来存储 n x n 信息。 这是我的代码:
int main() {
int n;
ifstream inFile;
inFile.open("input.txt");
inFile >> n;
int square[n][n];
readSquare(n, square);
}
void readSquare(int n, int square[][]) {
ifstream inFile("input.txt");
for (int r = 0; r < n; r++)
{
for (int c = 0; c < n; c++)
{
inFile >> square[r][c];
cout << square[r][c];
system("pause");
}
}
}
【问题讨论】:
-
你这样做是为了学习 C++,还是为了获得一个工作程序?
-
你不能定义这样的数组(非常量大小),你不能将多维数组作为参数传递。您应该改用
std::vector<std::vector<int>>。 -
@Beta 我这样做是为了完成家庭作业。所以我猜是“学习 C++”。
-
@JonathanPotter 是二维向量吗?我需要创建多个函数,我需要根据说明传递一些 2D 的东西
-
所以我认为
std::vector是被禁止的。我建议你先尝试一些简单的事情:一个使用数组(可变长度)的动态分配的程序,以及一个接受int*类型参数的函数。一旦完美运行,您就可以考虑二维数组了。