snake plissken
snake plissken

Reputation: 2669

Read file from txt

I ve got a txt file with double matrix 50x8. The first two lines contains the array size 50 8 the 50x8 matrix. When i trid to read this file with the above code:

#include<iostream>
#include<fstream>

using namespace std;

int main() {

    ifstream infile;
    infile.open("C:/Users/zenitis/Desktop/BTHAI_2.3b-src/BTHAI/txtFiles/W1.txt");
    double events[50][8];

    while (!infile.eof()) 
    {
        for(int j=0;j<50;j++) 
        {
            for(int k=0; k<8;k++) 
            {
                infile >> events[j][k];
                // infile.get(c
            }
        }
    } //end while

    infile.close();

    for(int i = 0; i<50; i++){

        for(int l=0; l<8; l++){
            cout << events[i][l] << "    ";
        }

        cout << "\n";
    }

    cout << events[0][0];

    system("pause");     
    return 0;
}

Firstly when i print the results the first two elements of the events matrix are the last two of the file. Secondly any idea how to read just the two first elements which is in fact the size of the matrix????

Upvotes: 1

Views: 573

Answers (1)

Sergey Kalinichenko
Sergey Kalinichenko

Reputation: 727067

You read the number of rows and columns like this:

int R, C;
infile >> R;
infile >> C;

You do it before the nested loops that read the rest of the file. Then you use the numbers from the file as your end-of-loop targets, rather than hard-coding 50 and 8.

Upvotes: 3

Related Questions