`%%` 的 sscanf` 无法按预期工作

问题描述 投票:0回答:1

考虑以下程序:

#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
在我的平台上给出:

c gcc scanf
1个回答
0
投票

foo%%bar
指定精确扫描
foo%bar
,不带空格。如果您想在
%
之前留有空格,请在
%%
之前添加一个空格。

© www.soinside.com 2019 - 2024. All rights reserved.