如果我正在读取文件的第一行并存储在某个变量中,并且如果我再次读取同一文件并存储在不同的数组中,我的数组是否会跳过第一行?
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
有人可以简要说明为什么跳过第一行吗?
谢谢,
答案 0 :(得分:1)
从文件中对fscanf的后续调用将进一步读入该文件,除非倒带 ed,除非该流不可重绕,如stdin。