gpt4 book ai didi

c++ - 在 C++ 中分配数据点的二维数组

转载 作者:行者123 更新时间:2023-11-28 03:43:00 25 4
gpt4 key购买 nike

当我为矩阵中的一个点赋值时,它为什么会为整列赋值?我试图让它只在那个时候分配。目前我正在自学计算机科学课的第二部分,所以我正在玩这个。 我的文件只是分配矩阵的大小。IT 编译并且没有运行时错误。我正在使用代码块。有更好的 IDE 吗?

我的 sample.txt 文件现在抓取两个数字 3 和 5。我试图理解,以便我可以实现文件的其余部分以将值放入矩阵中的正确点。

#include <iostream>
#include<string>
#include<fstream>
#include<iomanip>
using namespace std;

int main()
{
// variable initialition
string fileName;
int value;
int row=0,col=0; //for size of array
int a[row][col];
int row2,col2; // for putting values in array

fileName="sample.txt";
ifstream input;
input.open("sample.txt");

if (!input)
{
cout<<"ERROR: BAD FILE";
}


input>>row;
input>>col;
cout<<" ROW :"<<row<<endl;
cout<< " COL :"<<col<<endl;


for (int indexRow=0; indexRow<row; indexRow++)
{


for (int indexCol=0; indexCol<col; indexCol++)
{
a[indexRow][indexCol]=0;
}
}


a[0][1]=232;

for (int row2=0; row2<row; row2++)
{
for (int col2=0; col2<col; col2++)
{


cout<<a[row2][col2]<<" ";
}

cout<<endl;
}




input.close();

return 0;
}

最佳答案

动态数组并不像 C++ 中那样简单。您使用的语法仅用于创建固定大小的数组。在这种情况下,您需要创建具有常量、非零值的二维数组,如下所示:

int a[10][10];

此外,

input>>row;
input>>col;

...绝对不会自动调整数组的大小。

无论如何你应该避免使用原始数组,并考虑为你的二维数组使用 vector 的 vector :

std::vector<std::vector<int>> a;

有关动态数组的更多选择和讨论,请查看以下问题:

How do I best handle dynamic multi-dimensional arrays in C/C++

关于c++ - 在 C++ 中分配数据点的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8542213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com