|
前些日子,在工作中遇到关于无符号数据带来的麻烦,现在在这里分享给大家。
在mfc工程中
我要获取从 “10.1.2.1” ->"10.1.2.255"
第一步:
CString -------->in_addr
CString类型转化为in_addr 中 通过inet_addr()转化;
然后同过while循环利用in_addr 结构中的s_b4值
获得上述ip
while(sb4<255)
{
cout<<inet_ntoa(in_addr)<<endl;
sb4++;
}
后来经过排查,发现由于in_addr 结构中sb4变量是无符号字符
因此其最大值为255,当sb4 = 255后,sb4++ ,此时sb4 就变为 0
于是while循环就变为死循环,将程序卡死。 |