我正在尝试以%I/%I%s的格式获取令牌,并将它们拆分为三个变量。

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


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

它只是一个断层。我做错什么了?
我试着把%d改成%I,没有区别。

最佳答案

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

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

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

输出:
qwerasdf - 10

08-27 02:10