gpt4 book ai didi

c++ - sscanf 多个输入

转载 作者:行者123 更新时间:2023-11-30 21:22:00 25 4
gpt4 key购买 nike

我有一个输入字符串,需要解析它才能获取 4 - 16 个变量。使用 sscanf 我可以获取前几个变量,但其余的显示为 0。我需要做什么才能获取其余的变量?

行格式:COMMAND [1 - 16 个浮点变量,以空格分隔]

该行来自使用如下内容的文件:

fgets(行, 20, 文件);

sscanf(行, "%s", 参数);

字符串 parString(param);

if(parString == "NEAR"){

      sscanf(line, "%s %f", param, &np);
printf("%s %f\n", param, np);

}...

根据行中的第一个单词,我知道在这种情况下需要读入多少个变量。

最佳答案

使用 std::istringstream 可以更好地完成此任务,因为它会记住您到目前为止所读到的位置。所以你可以编写这样的代码

#include <sstream>

std::istringstream input("SPHERE s3 -4 2 -10 2 2 1 0 0 0.5 0 0 1 0 1000");
int var1, var2, var3, var4, var5, var6;
// get first four variables
input >> var1 >> var2 >> var3 >> var4;
if (something or other)
{
// get the next two variables
input >> var5 >> var6;
}

无论如何,类似的事情。我相信您已经明白了。

关于c++ - sscanf 多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13257170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com