【发布时间】:2021-02-07 06:05:15
【问题描述】:
我有一个格式如下的 .txt 文件:
906 25 25
1997 25 25
900 25 25
1990 50 1.75
1981 50 50
925 25 25
我编写了以下代码将数字读入数组:
float numbers[1029][2];
std::ifstream fin;
fin.open("GiftCardFinal.txt");
if (!fin.is_open())
{
return 0;
}
for (int i = 0; i < 1029; i++)
{
for (int j = 0; j < 3; j++)
{
fin >> numbers[i][j];
}
}
fin.close();
但是,当我运行此代码以测试它是否正确读取数字时...
std::cout << numbers[0][0] << " ";
std::cout << numbers[0][1] << " ";
std::cout << numbers[0][2] << " ";
std::cout << std::endl << std::endl;
std::cout << numbers[1][0] << " ";
std::cout << numbers[1][1] << " ";
std::cout << numbers[1][2] << " ";
它输出:
906 25 25
25 1997 25
任何人都可以提供帮助或就我可以改进的方面提供建议吗?
【问题讨论】:
-
将第 2 维增加到 3 可能是一个好的开始。
-
std::cout << numbers[0][2]超出了第二个数组维度的边界。 -
我原来确实设置为 3。我不明白为什么不起作用时将其更改为 2
-
将其设置为 3 会导致以下输出:906 25 1997 1997 25 900
-
当您将第 2 维设置为 3 时,您的内部循环不会填充第 2 维。试试
j < 3
标签: c++ multidimensional-array