C sscanf:为什么会出现这种情况?

时间:2014-10-15 03:49:29

标签: c pointers scanf

我试图采用"%i /%i%s"并将它们分成三个变量。

char char1[20];
int int1;
int int2;


sscanf(token, "%[^/]/%d", char1, &int2);
printf("%s - %i ", char1, &int2);

它只是段错误。我做错了什么?

我尝试将%d更改为%i,没有区别。

1 个答案:

答案 0 :(得分:2)

你不应该在你的printf中打印int2的地址。这对我有用:

const char *token = "qwerasdf/10";
char char1[20];
int int2;

sscanf(token, "%[^/]/%d", char1, &int2);
printf("%s - %i ", char1, int2);

输出:

qwerasdf - 10