在C中同时访问两个不同的行

时间:2014-12-02 04:53:59

标签: c rows simultaneous

假设我有一个按以下方式排列的数据集

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

等等,在for循环的特定迭代中,我必须只读取第1行和第4行,并且在下一次迭代中我必须访问其他一些行,例如

1st iteration:

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

我将使用fscanf()函数访问我的数据。但是,在给定的迭代中,我将如何确保仅选择第1行或第4行或任何两行?

(我没有考虑将其读入2D数组,因为数据集的大小是10 ^ 8)

谢谢。

1 个答案:

答案 0 :(得分:3)

在读取数据时(例如,存储在标准文件中),通过查找行分隔符(换行符)获取行的字节偏移量。然后,您可以在FILE *fseek()上使用C指针算法基于开始和结束字节偏移读出行。存储几个字节的偏移量(通常为8个字节long或等效物)很便宜。