不明白sscanf_s的行为

时间:2016-02-15 16:12:59

标签: c++ visual-studio-2012 visual-studio-2015 scanf

此行为似乎在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中是一个侥幸。

1 个答案:

答案 0 :(得分:2)

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