这是一个非常基本的问题,但我的C非常生疏,我需要复习。我有一个字符串,其格式完全相同:di ###.# ###.# ###
。
我想将第一个数字读入d1
,将第二个数字读入d2
,将第三个数字读入d3
。
int main ()
{
double d1, d2, d3;
char mystring[] = "di 123.4 567.8 901";
//some code that I don't know
return 0;
}
你能帮助我吗?我知道strtod()可以帮助解析数字,但是如何在开头跳过“di”?
答案 0 :(得分:11)
您可以使用sscanf
:
sscanf(mystring, "di %lf %lf %lf", &d1, &d2, &d3);
在这一行中,您将提供一个格式字符串(基本上布置您希望数字的位置),然后按顺序提供您希望将结果放入的变量的地址。 &
运算符会获取其应用的地址,在本例中为d1
,d2
和d3
变量。
(The reference supplied在C ++网站上,但适用于此功能)