我仍然无法理解为什么这个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';
}
}
答案 0 :(得分:3)
您的变量datos
太小,因此结尾的空字符会覆盖i
。
将decalaration更改为:
char datos[6]="";