У меня есть программа, которая читает входные данные из одной строки (очевидно, строки) и организует их в массивы.
У меня проблема в том, что однажды программа читает два разных значения и дважды возвращает первое. Сначала я думал, что программа дважды читает одно и то же значение, но когда я тестировал, оказалось, что он получил правильное значение, но вводит неправильное.
например
Ввод: 2 0,90 0,75 0,7 0,65
Извините, что перерезал это
(while(fgets (string[test], sizeof(string[test]),ifp))
pch = strtok_r(NULL, " ", &prog);
tem3 = atoi(pch);
while (loop<tem3)
{
pch=strtok_r(NULL," ",&prog);
venseatfloat[test][loop][DISCOUNT][OCCUPIED]=(float)atof(pch);
printf("%f is discount\t",venseatfloat[test][loop][DISCOUNT][OCCUPIED]);
pch=strtok_r(NULL, " ", &prog);
strcpy(temp, pch);
venseatfloat[test][loop][REGULAR][OCCUPIED]=(float)atof(pch);
printf("%s is the string but %.3f is regular\n", temp ,venseatfloat[test][loop][DISCOUNT][OCCUPIED]);
loop++;
}
выход:
>0.900000 is discount 0.75 is the string but 0.900 is regular
>0.700000 is discount 0.65 is the string but 0.700 is regular
Что происходит?