char a[200] = { 0 };

char tst[20] = "aaaa 123\n";
int i;
sscanf_s(tst, "%s %d",a, &i);
printf("reasult:%s %d", a,i);


无论我使用char tst[20] = "aaaa 123\n";还是char* tst = "aaaa 123\n";
它总是显示访问冲突。
我需要将一个字符串与一个字符串分开。但是为什么会这样呢?

最佳答案

sscanf_s要求%c%s%[有两个参数,第二个是传递的缓冲区的大小。以下应该工作:

sscanf_s(tst, "%s %d", a, sizeof(a), &i);

10-08 11:59