使用fscanf读取文件时出错

时间:2014-10-16 12:46:16

标签: c while-loop eof scanf

我仍然无法理解为什么这个printf打印多个0并且i ++没有效果

    int i=0;
char datos[5]="";

while((fscanf(entry_file,"%5s",datos))==1)
{
    //Buffer para @
    char x;

    if((strcmp(datos,"DATOS"))==0)
    {
        fscanf(entry_file,"%lf%c%lf%c%lf%c%lf%c%lf%c%lf%c%lf",&cohetes[numCohetes].vuelos[0].aceleracionX[i],&x,&cohetes[numCohetes].vuelos[0].aceleracionY[i],&x,&cohetes[numCohetes].vuelos[0].aceleracionZ[i],
                &x,&cohetes[numCohetes].vuelos[0].altura[i],&x,&cohetes[numCohetes].vuelos[0].potencia[i],&x,&cohetes[numCohetes].vuelos[0].temperatura[i],&x,&cohetes[numCohetes].vuelos[0].tiempo[i]);
        printf("%d\n",i);
        i++;
        datos[0]='\0';
    }

}

1 个答案:

答案 0 :(得分:3)

您的变量datos太小,因此结尾的空字符会覆盖i

将decalaration更改为:

char datos[6]="";