在C中的代码中读取相同的文件两次

时间:2014-10-16 06:28:25

标签: c file csv readfile c-strings

如果我正在读取文件的第一行并存储在某个变量中,并且如果我再次读取同一文件并存储在不同的数组中,我的数组是否会跳过第一行?

a1,a2,a3,a4,a5
b1,b2,b3,b4,b5
c1,c2,c3,c4,c5
d1,d2,d3,d4,d5
e1,e2,e3,e4,e5

我的代码看起来像这样

    FILE* fp1 = fopen("test.csv","r");
    if(fp1 == NULL)
    {
      printf("Failed to open file\n");
      return 1;
    }

    fscanf(fp1,"%[^\n]",variable); 
    while((fscanf(fp1,"%[^,],%[^,],%[^,],%[^,],%[^\n]\n",C1,C2,C3,C4,C5)>0))
    {

        some function()     

    }
    for(i=1;i<=5;i++)
    {
       printf("%s\t", C1[i]);
       printf("%s\n", C2[i]);
    }

我的输出从文件的第二行开始,即

C1[i] = {b1,c1,d1,e1}  but not a1
C2[i] = {b2,c2,d2,e2}  but not a2

有人可以简要说明为什么跳过第一行吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

从文件中对fscanf的后续调用将进一步读入该文件,除非倒带 ed,除非该流不可重绕,如stdin。