gpt4 book ai didi

c++ - 两个二维数组,两个矩阵,一个文件

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

我想弄清楚如何从一个文件中读取两个矩阵,然后将它们分配给两个不同的二维数组。这些矩阵在文本文件中由一个新行分隔。我设法让第一个成功阅读,但现在我无法弄清楚如何阅读第二个。在我看来,必须考虑并检查分隔两个矩阵的线。如何让程序读取第二个矩阵并将其分配给数组?

矩阵和数组都是 4x4。

这是文本文件的样子:

3  4  5  7

5 16 7 12

11 12 3 9

9 8 1 12


15 4 3 6

1 12 3 12

7 8 19 9

11 12 8 5

这是我的第一个数组的代码,它工作正常。

for (int y = 0; y < 4; ++y )
{
for (int x = 0; x < 4; ++x )
{
infile >> array1[x][y];
}
}

这是我无法理解的数组代码。

for (int y = 0; y < 4; ++y )
{
for (int x = 0; x < 4; ++x )
{
if(x == '\n' && y == '\n') //My attempt.
{
infile >> array2[x][y];
}
}
}

这是输出:

This will check to make sure numbers in file are written to the first array.
3 4 5 7
5 16 7 12
11 12 3 9
9 8 1 12

This will check to make sure numbers in file are written to the second array.
9.21742e-314 1.0572e-307 7.29112e-304 3.87184e-306
1.06498e-307 1.65425e-317 6.79039e-313 4.22748e+266
5.92879e-323 1.06196e-307 6.95089e-308 9.88799e-315
1.79648e-313 8.48798e-314 6.95224e-308 1.06193e-307
Press any key to continue . . .

感谢任何帮助!

最佳答案

当您使用“格式化输入”运算符 >>> 读取文件时,项目(您的案例中的数字)之间的空白(空格、制表符、换行符)的种类和数量是微不足道的。这意味着您根本看不到空行。如果您需要根据文件的行来解析文件,请考虑改用 getline 并使用 istringstream 来解析单行。

另一方面,如果您知道两个数组的大小,则可以像读取第一个数组一样简单地读取第二个数组。多余的空行将被忽略。

读取第二个数组的代码不起作用的原因是您将索引变量与 '\n' 进行了比较,在大多数系统上它恰好是 10。由于您的索引范围从 0 到 3,if 条件永远不会为真,因此根本不会读取任何内容,因此您会看到未初始化内存的转储。

关于c++ - 两个二维数组,两个矩阵,一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21636009/

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