Tho*_*hom 5 c c++ scanf format-specifiers
scanf(),%[-A-B234abc]或的正确扫描集格式说明符语法是什么%[A-B234abc-]?我在 StackOverflow 上找不到答案,以下两个链接给出了相互矛盾的答案:
cplusplusreference: 不是第一个字符的破折号 (-) 可能会在某些库实现中产生不可移植的行为。
beez: 要匹配连字符,请将其作为集合中的最后一个字符:%[AC-]。
根据 n1570(C11 标准草案)和 n1256(C99 标准草案),
\n\n\n7.21.6.2 fscanf 函数
\n[...]
\n\n
\n- 转换说明符及其含义是:
\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0[...]
\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0[\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\ xc2\xa0\xc2\xa0 [...]
\n
\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 \xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0如果 - 字符在扫描列表中并且不是第一个,也不是第二个(其中第一个字符是 a) ^,也不是最后一个字符,该行为是实现定义的。