作为实践,我正在尝试用 2 个简单的命令制作一个简单的假外壳。这也是我第一次使用 strtok。它需要一个命令(get 或 set)和一个参数来访问(宽度、高度等)。我的问题是第三个参数是一个浮点数,我想将它从 strtok 返回的 char * 转换为我试图存储它的浮点变量。我现在不知所措。我过去在 c 语言方面的效率很高,但经过几年的休息后,我惊讶于自己忘记了多少语言。任何帮助将非常感激。我现在不在家,但如果需要,我会发布代码。
感谢您的时间。
作为实践,我正在尝试用 2 个简单的命令制作一个简单的假外壳。这也是我第一次使用 strtok。它需要一个命令(get 或 set)和一个参数来访问(宽度、高度等)。我的问题是第三个参数是一个浮点数,我想将它从 strtok 返回的 char * 转换为我试图存储它的浮点变量。我现在不知所措。我过去在 c 语言方面的效率很高,但经过几年的休息后,我惊讶于自己忘记了多少语言。任何帮助将非常感激。我现在不在家,但如果需要,我会发布代码。
感谢您的时间。
要解析 Double,您的选择是 -
atof 不允许验证数字,如果解析失败,它将返回 0.0。sscanf 有点麻烦,而且 %f 格式可能不会出现在所有系统上。尝试查看 strtod 或 strtof (如果您想要浮动)。
你可以这样使用它(txt 是你的字符 *)
char *end;
float num = strtof(txt, &end);
if (end != txt + strlen(txt))
{
// This means something went wrong
}
else
{
// This means everything is OK
}
也许atof是您正在寻找的东西?获取一个 char*(例如来自 strtok)并将其转换为双精度。