我有一个案例,我不确定是否能获得足够的输入sscanf
。我可以安全地假设它sscanf
不会与它找不到的任何论点混淆吗?
例如,在这个程序中:
#include <stdio.h>
int main(int argc, char** argv) {
int a = 0, b = 0, c = 0;
sscanf("1 2", "%d %d %d", &a, &b, &c);
printf("%d %d %d\n", a, b, c);
return 0;
}
输出是:
1 2 0
因此,它读取了三个数字中的两个,并且没有与最后一个混淆。在这种情况下,我可以安全地假设所有编译器和标准库也会单独留下最后一个参数,还是我需要做这样的事情:
int main(int argc, char** argv) {
int a = 0, b = 0, c = 0;
if (sscanf("1 2", "%d %d %d", &a, &b, &c) != 3) {
c = 0;
}
printf("%d %d %d\n", a, b, c);
return 0;
}