我正在使用
阅读格式化数据 sscanf(buf,"%d %d",&a,&b)
;
data format = (unsigned short SPACE unsigned short)
;
但是当我读它时只能从缓冲区中成功提取第二个整数值,因为它首先提取0.我正在检查(printf("nRecvd %d and %d",a,b)
)我正在从套接字读取并验证了缓冲区值。一切都好,直到sscanf。
char buf[MAXBUFL];
unsigned short a, b;
if (sscanf(buf,"%d %d",&a,&b) != 2)
snprintf (buf, sizeof(buf), "data error\r\n");
else
{
printf("\nRecvd %d and %d",a,b);}
有什么建议吗?
答案 0 :(得分:2)
您正在扫描short
个变量,这意味着您必须告诉sscanf
。你需要:
if (sscanf(buf,"%hd %hd",&a,&b) != 2)
scanf
的手册页中对此进行了解释。