sscanf_s使用
使用sscanf_s时会出现一些问题,特别是容易出现栈溢出,字符串溢出问题,所以需要在格式化时严格的控制,另外,在sscanf_s中使用%c格式化时,需要在对应的字符之后加上缓冲器大小,如下使用:
int main()
{
char s[] = "192.30.1.55";
unsigned char ss[7] = { 0 };
sscanf_s(s, "%hhu%c%hhu%c%hhu%c%hhu", &ss[0], &ss[1], sizeof(char), &ss[2], &ss[3], sizeof(char), &ss[4], &ss[5], sizeof(char), &ss[6]);
printf("%hhu%c%hhu%c%hhu%c%hhu", ss[0], ss[1], ss[2], ss[3], ss[4], ss[5], ss[6]);
system("pause");
return 0;
}
格式化参见格式转换说明符(http://blog.youkuaiyun.com/yangyang031213/article/details/55805434)。
效果: