如何将所有4个字符转换为浮点数?我只能将第一个字符转换为整数。你能在解释中给我一些例子吗?谢谢
这是我到目前为止所尝试过的。
void use_atof()
{
char c[200];
float val, v;
strcpy(c ,"23.56,55.697,47.38,87.68");
val = atof(c);
printf("%f\n", val);
}
答案 0 :(得分:3)
您需要分离输入并在每个值上调用atof()。
以下是使用strtok执行此操作的简单方法。请注意,它确实会破坏输入数据(添加NULL' s),因此如果它不可接受,您需要复制它或找到其他方式(例如,使用strchr())。
void use_atof()
{
char c[200];
float val, v;
char *ptr;
strcpy(c ,"23.56,55.697,47.38,87.68");
ptr = strtok(c,",");
while (ptr) {
val = atof(ptr);
printf("%f\n", val);
ptr = strtok(NULL,",");
}
}
编辑:
每个请求,一个完整的程序(在Linux上测试):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void use_atof(void);
int main()
{
use_atof();
exit (0);
}
void use_atof()
{
char c[200];
float val, v;
char *ptr;
strcpy(c ,"23.56,55.697,47.38,87.68");
ptr = strtok(c,",");
while (ptr) {
val = atof(ptr);
printf("%f\n", val);
ptr = strtok(NULL,",");
}
}