C++ 将数字从文件读入多维数组
我有一个.txt文件,其格式如下:C++ 将数字从文件读入多维数组,c++,multidimensional-array,C++,Multidimensional Array,我有一个.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 < 102
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();
是否有人可以对此提供帮助或建议我可以改进什么?尝试运行以下代码:
#include <iostream>
#include <fstream>
using namespace std;
#define NUM_LINE 10000
int main()
{
float numbers[NUM_LINE][3];
std::ifstream fin;
fin.open("GiftCardFinal.txt");
if (!fin.is_open())
{
return 0;
}
for (int i = 0; i < NUM_LINE; i++)
{
for (int j = 0; j < 3; j++)
{
fin >> numbers[i][j];
}
}
fin.close();
for (int i = 0; i < NUM_LINE; i++)
{
for (int j = 0; j < 3; j++)
{
cout << numbers[i][j] << " ";
}
cout << endl;
}
return 0;
}
将第二维度增加到3可能是一个好的开始。
std::cout我最初确实将其设置为3。当我不明白为什么它不工作时,我把它改成了2。将它设置为3会导致以下输出:906 25 1997 25 900当你将第二维度设置为3时,你的内部循环没有填充第二维度。尝试j<3
它必须读取~1000行和3列,每次更新我的代码。如果您已经知道输入文件中的行数,则可以更改NUM_LINE
的值。检查是否事先不知道输入文件中的行数。for循环与原始循环有何不同?谢谢你的帮助我将代码更改点从三行改为一行。检查数字
数组声明和外部循环。现在您只需要更改#define NUM_LINE 10000
中的行数值。您的代码不起作用,因为您用错误的维度声明了数字
数组。它应该是1029x3
。
906 25 25
25 1997 25
#include <iostream>
#include <fstream>
using namespace std;
#define NUM_LINE 10000
int main()
{
float numbers[NUM_LINE][3];
std::ifstream fin;
fin.open("GiftCardFinal.txt");
if (!fin.is_open())
{
return 0;
}
for (int i = 0; i < NUM_LINE; i++)
{
for (int j = 0; j < 3; j++)
{
fin >> numbers[i][j];
}
}
fin.close();
for (int i = 0; i < NUM_LINE; i++)
{
for (int j = 0; j < 3; j++)
{
cout << numbers[i][j] << " ";
}
cout << endl;
}
return 0;
}
906 25 25
1997 25 25
900 25 25
1990 50 1.75
1981 50 50
925 25 25