我有一个带有“;”的文件作为分隔符,我想获取一些字符并将其保存为浮点数,我想出了类似这样的内容:

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的第二个参数应为nlt终止的char数组。

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


甚至更好的建议

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


关于输入部分,您可以执行以下操作:

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


代替使用atof,最好使用strtofstrtod函数。与这些ato*函数不同,它们提供错误检查。

关于c - 如何在C中使用getc()从文件中获取浮点数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48476015/

10-11 19:28