我有一个带有“;”的文件作为分隔符,我想获取一些字符并将其保存为浮点数,我想出了类似这样的内容:
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
,最好使用strtof
或strtod
函数。与这些ato*
函数不同,它们提供错误检查。关于c - 如何在C中使用getc()从文件中获取浮点数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48476015/