我有这个:
#include<stdio.h>
#include<string.h>
int main(void)
{
int ret;
int major =0, minor= 0, build =0, revision =0;
char entry[16];
strcpy(entry,"1.2");
ret = sscanf(entry,"%d.%d.%d.%d", &major, &minor, &build, &revision);
printf("sscanf(""%s"") returned %d\r\n", entry, ret);
printf("major=%d, minor=%d, build=%d, revision=%d\r\n",
major, minor, build, revision);
return ret;
}
调用sscanf
后,ret
为-1,但前两个条目被填充(major为1,minor为2)。我期待ret
成为2.我不知道出了什么问题。
答案 0 :(得分:1)
好的,我想我找出了问题所在。在VS 2013下,行为是可行的(它可以工作)。但CVI版本(National Instruments)根本不符合规则。
CVI下的所以'回答'是CVI下的sscanf的不兼容版本。
如果有人想发布答案,我会接受并给予信任。