从char数组中的用户输入存储一个float,并立即存储一个float

时间:2014-02-02 18:53:28

标签: c arrays input floating-point

我想知道是否有可能从用户那里接收输入并将其副本存储在两个不同类型的变量中。具体来说,我要做的是接收 float 作为输入并将其存储在 char数组以及 float 变量中,以便我可以使用 float 进行计算,使用 char数组来遍历内容。我想通过要求用户只输入一次浮点数来做到这一点。我可以使用scanf()执行此操作吗?谢谢!

1 个答案:

答案 0 :(得分:1)

以字符串形式读入。将副本另存为字符串并扫描缓冲区以查找float

char buffer[100];
puts("input float number ");
fgets(buffer, sizeof buffer, stdin);
char *x_as_string = strdup(buffer);

// Use sscanf()
float x_as_float;
if (1 != sscanf(buffer, "%f", &x_as_float)) Handle_ScanError();

//  or strtof() 
char *endptr;
errno = 0;
float x_as_float = strtof(buffer, &endptr);
if (endptr == buffer || *endptr != '\n' || errno) Handle_Error();