考虑以下程序:
#include <stdio.h>
// [Example 5 from C17; Page 238](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2310.pdf)
int main(void) {
int n = 0;
int i = 0;
n = sscanf("foo %bar 42", "foo%%bar%d", &i);
printf("n = %d\ni = %d\n", n, i);
return 0;
}
根据C17标准,应该打印
n = 1
i = 42
但是,在我的平台上它打印
n = 0
i = 0
gcc -v
在我的平台上给出:
foo%%bar
指定精确扫描 foo%bar
,不带空格。如果您想在 %
之前留有空格,请在 %%
之前添加一个空格。