Это функция для чтения символа из файла и размещения, затем преобразования строки в поплавок, но цикл while не заканчивается, когда считывается '/ 0'.Пока цикл не заканчивается на ' 0'
GSF555 "Газовый фильтр - Ford Escort" 64,50 9 < - это то, что читается, но от "64,50"
PKL070 "Парк Lens - Toyota Corolla" 36,50 8
Петля пока идет мимо '/ 0', а также читает «9» и символы из следующей строки данных.
У меня только есть printf
, чтобы узнать, что происходит.
float getPrice(FILE * in){
char ch;
int i = 0;
char str[10];
ch = fgetc(in);
printf("INDEX + NUMBER = %d %c\n", i, ch);
if(ch == '\0')
ch = fgetc(in);
str[i++] = ch;
while(ch != '\0' && i < 10){
str[i++] = ch;
printf("Index I = %d\n", i);
ch = fgetc(in);
printf("3 %c\n",ch);
}
printf("STRING = %s\n", str);
return atof(str);
}
'str' не обязательно имеет нулевой символ, который заканчивается перед его печатью. – chux