C++ 从文件中读取数据并存储在c++;

C++ 从文件中读取数据并存储在c++;,c++,C++,我希望并想知道是否有人能帮助我理解如何在C++中执行以下操作: 使用命令行输入重定向将文件内容存储到二维数组中。 这些文件的行数未知,共有3列。 大概是这样的: 20 42 0.00 15 67 2.41 70 53 9.88 因此,需要制作一个可以容纳x个数组的数组。X是文件中的行数。每个内部阵列将容纳该行的一列 我不知道如何做到这一点,但我将真诚地感谢任何和所有的帮助和方向,在如何做到这一点 提前感谢并致以最良好的问候 因为这看起来像是家庭作业,这里有一些基本提示 可以使用以下管道将一个命令

我希望并想知道是否有人能帮助我理解如何在C++中执行以下操作: 使用命令行输入重定向将文件内容存储到二维数组中。

这些文件的行数未知,共有3列。 大概是这样的: 20 42 0.00 15 67 2.41 70 53 9.88

因此,需要制作一个可以容纳x个数组的数组。X是文件中的行数。每个内部阵列将容纳该行的一列

我不知道如何做到这一点,但我将真诚地感谢任何和所有的帮助和方向,在如何做到这一点


提前感谢并致以最良好的问候

因为这看起来像是家庭作业,这里有一些基本提示

可以使用以下管道将一个命令的输出作为另一个命令的输入:

cat myfile.txt | myprogram
myprogram
然后可以使用
cin
读取数据

这应该足以让你开始

static const size\u t START\u size=100;
static const size_t START_SIZE = 100;

//allocate array of pointers
double** flt_arr = new double*[START_SIZE];

size_t current_size = START_SIZE;
size_t current_index = 0;

while (!cin.eof())
{
    double flt1, flt2, flt3;

    cin >> flt1 >> flt2 >> flt3;

    //check stream for bad read
    if (cin.fail())
    {
        cerr << "Input error on line " << current_index + 1 << "!" << endl;
        break;
    }

    if (current_size == current_index)
    {
        //grow array
        current_size += START_SIZE;

        double** tmp_arr = new double*[current_size];

        for (size_t count = 0; count < current_index; count++)
        {
            tmp_arr[count] = flt_arr[count];
        }

        delete [] flt_arr;
        flt_arr = tmp_arr;
    }

    //allocate row for current line
    flt_arr[current_index] = new double[3];

    flt_arr[current_index][0] = flt1;
    flt_arr[current_index][1] = flt2;
    flt_arr[current_index][2] = flt3;

    current_index++;
}

//clean up rows
for (size_t count = 0; count < current_index; count++)
{
    delete [] flt_arr[count];
}

//clean up array of pointers
delete [] flt_arr;
//分配指针数组 双精度**flt_arr=新双精度*[起始尺寸]; 大小\u t当前大小=开始大小; 当前索引的大小=0; 而(!cin.eof()) { 双flt1,flt2,flt3; cin>>flt1>>flt2>>flt3; //检查流是否读取错误 if(cin.fail()) {
cerr你到底不知道怎么做?如何读取文件?如何放入数组?如何使用命令行输入重定向?@amit好吧,人们会使用for循环将内容放入数组,对吗?其余的我不知道怎么做。