C:如果只修复某些字段,则读取输入文件的最佳方法

时间:2013-03-12 03:49:23

标签: c fgets scanf

考虑给定的输入:

ID    Name             Num
--------------------------

213DA Andrews, Dennis; 6.9      // <--- cursor initially located on 2
283JB Brown, Joanne; 2.6
420JB Brown, Joanne; 0.0
339VL Lee, Victor; 3.6
126RW White, D. Robert; 3.5
150JM Marcus, John; 4.0
// more data with same format as above
// EOF

我想将每个存储在并行数组中:

char *id[];
char *name[];
double num[];

以下哪项更好?

  1. LOOP(直到EOF){

    fgets阅读单行

    PARSE每个字段。

    }

  2. LOOP(直到EOF){

    fscanf阅读id[i]

    fscanf阅读name[i]

    fscanf阅读num[i]

    我+ +

    }

  3. 或者,我们是否有更高效(以内存方式和/或处理速度方式)编写代码的方式?

1 个答案:

答案 0 :(得分:0)

我认为后者更好。因为它更容易阅读和更多 直截了当。至于效率,我不认为这两种方法有很大区别,因为操作系统为我们做了很多。顺便说一句,我建议你使用结构类型来使代码更具可读性。