-3

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

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

1 回答 1

2

的正确用法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它,不如使用它strtofstrtod函数。与这些功能不同,它们提供错误检查ato*

于 2018-01-27T12:56:50.100 回答