Accesing two different rows simultaneously in C

80 views Asked by At

Suppose I have a data set arranged in the following way

19 10 1 1
12 15 1 1
13 12 4 5
10 5  2 3
...

and so on, at a particular iteration in a for loop I have to read only the 1st and the 4th row and in the next iteration I have to access some other set of rows,for example

1st iteration:

1st row: 19 10 1 1
4th row: 10 5  2 3 

i will access my data using the fscanf() function. But how will i ensure that I choose only the 1st and 4th rows or any two rows for that matter at a given iteration?

(I have not considered reading it into a 2D array since the size of data set is 10^8 )

Thank you.

1

There are 1 answers

2
Alex Reynolds On BEST ANSWER

As you read through your data (say, stored in a standard file), get byte offsets for rows by looking for row delimiters (a newline character). You can then read out rows based on the start and end byte offset with C pointer arithmetic on a FILE * and fseek(). Storing a few byte offsets (an eight byte long or equivalent, often) is cheap.