У меня есть программа, которая считывает ввод с одной строки (строка явно) и организует ее в массивы.Простой C: atof дает неправильное значение
Проблема заключается в том, что в какой-то момент программа считывает два разных значения и дважды возвращает первый. Первоначально я думал, что программа читает одно и то же значение дважды, но когда я тестировал, оказалось, что он получил правильный, но вводит неверный.
, например
Входной сигнал: 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
Что происходит ?
lol – Chani
Ughhhh wow. Я идиот. Извините, что украл у вас время. Теперь я должен разорвать голову на стене. –
@ Doc, Если это действительно решение, тогда вам нужно принять ответ. –