Как получить float из файла, используя getc() в C?
У меня есть файл с ";" в качестве разделителя я хочу получить некоторые символы и сохранить их как float, я придумал что-то вроде этого:
int c;
char help[10];
float x;
while(getc(c)!=';'){
strcpy(help, c);
}
float = atof(help);
1 ответ
Решение
Правильное использование getc
, это int getc(FILE *stream)
, Таким образом, вы должны предоставить stream
из которого это читает.
while(getc(c)!=';'){ <-- wrong
strcpy(help, c); <-- wrong
...
неправильно. Второй параметр для strcpy
должен быть нулевым char
массив.
char cs[]={c,0}
strcpy(help,cs);
или даже лучшеалк предложил
{strcpy(help, (char[2]){c});}
Что касается входной части, вы можете сделать это, хотя:
while((c=getc(stdin))!=';'){
...
Вместо того, чтобы использовать atof
это гораздо лучше использовать strtof
или же strtod
функции. Они обеспечивают проверку ошибок в отличие от этих ato*
функции.