如何在C中使用getc()从文件中浮动?

时间:2018-01-27 12:55:35

标签: c char type-conversion int getc

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

甚至更好 alk建议

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

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

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

使用atofstrtof函数更好,而不是使用strtod。它们提供错误检查,与这些ato*函数不同。

相关问题