这是正确的扫描集语法格式说明符scanf()
,%[-A-B234abc]
或%[A-B234abc-]
?我在StackOverflow上找不到答案,以下两个链接给出了矛盾的答案:
cplusplusreference: 在某些库实现中,不是第一个字符的破折号(-)可能会产生不可移植的行为。
beez: 要匹配连字符,请使其成为集合中的最后一个字符:%[AC-]。
根据n1570(C11标准草案)和n1256(C99标准草案),
7.21.6.2 fscanf函数
[...]
- 转换说明符及其含义是:
[...]
[[...]
如果-字符位于扫描列表中,并且不是第一个字符,也不是第二个字符(第一个字符是^或最后一个字符),则该行为是实现定义的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句