如何在 C 中使用 getc() 从文件中获取浮点数?

How to get float from file using getc() in C?

我有一个带有“;”的文件作为分隔符,我想获取一些字符并将它们保存为浮点数,我想出了这样的方法:

int c;
char help[10];
float x;
while(getc(c)!=';'){
strcpy(help, c);
}
float = atof(help);

getc 的正确用法。是int getc(FILE *stream)。所以你需要提供它读取的stream

while(getc(c)!=';'){ <-- wrong
   strcpy(help, c);  <-- wrong
   ...

错了。 strcpy 的第二个参数应该是一个 nul 终止的 char 数组。

char cs[]={c,0}
strcpy(help,cs);

甚至更好建议

{strcpy(help, (char[2]){c});}

关于输入部分你可以这样做:

 while((c=getc(stdin))!=';'){ 
   ...

与其使用 atof,不如使用 strtofstrtod 函数。与这些 ato* 函数不同,它们提供错误检查。