【发布时间】:2015-07-24 06:36:28
【问题描述】:
我正在尝试解析以下字符串-"DATA,97,103,100,97,84,69"。该字符串可以有以下变体-
"DATA,100,10,1,9,82,60"
"DATA,57,27,59,30,11,64"
"DATA,12,86,100,97,103,23"
"DATA,1,10,78,38,45,52"
"DATA,99,43,85,28,84,26"
请注意,第一个 "DATA," 永远不会改变。其余整数从 0 到 200 不等。下面是使用 sscanf_s 函数解析这些字符串的代码-
char ignore_data[5];
int x1,x2,x3,y1,y2,y3;
char str[]="DATA,97,103,100,97,84,69";
sscanf_s(str,"%5[^,],%d,%d,%d,%d,%d,%d", ignore_data, &x1, &x2, &x3, &y1, &y2, &y3);
printf("str=%s, x1=%d, x2=%d, x3=%d, x1=%d, y2=%d, y3=%d",str, x1, x2, x3, y1, y2,y3);
代码不起作用并显示以下错误
My Application.exe 中 0x510A06E4 (msvcr110d.dll) 处的未处理异常:0xC0000005:访问冲突写入位置 0x00870000。
当sscanf() 与#define _CRT_SECURE_NO_WARNINGS 预处理器一起使用时,上述代码完美运行。
我想获取x1、x2、x3、y1、y2 和 y3 的值。我在这里错过了什么?
【问题讨论】:
标签: c visual-studio-2012 input scanf