如何在 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
,不如使用 strtof
或 strtod
函数。与这些 ato*
函数不同,它们提供错误检查。
我有一个带有“;”的文件作为分隔符,我想获取一些字符并将它们保存为浮点数,我想出了这样的方法:
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
,不如使用 strtof
或 strtod
函数。与这些 ato*
函数不同,它们提供错误检查。