不了解sscanf_s行为

Don't understand sscanf_s behaviour

本文关键字:行为 sscanf 不了解      更新时间:2023-10-16

这种行为似乎在Visual Studio 2012和2015之间发生了变化。

int i,j;
sscanf_s("1†3", "%d†%d", &i, &j);

在上面的代码中,未设置 j。我认为这可能是因为†不是 ASCII 字符。如果†被空格替换,上面确实设置了j。但是,代码在Visual Studio 2012中运行良好。

知道这里发生了什么吗?

编辑:

我改用swscanf_s来解决这个问题。我想上述方法在Visual Studio 2012中起作用是一种侥幸。

这是一个错误:窄字符 scanf 格式字符串解析器无法将文字字符与负值匹配。 在Microsoft连接上有一个活动错误:sscanf 问题。 这将在Visual Studio 2015和Windows 10使用的通用CRT的下一次更新中修复。