4
我試圖使用inet_addr
功能轉換成一個字符的IP地址,但我認爲,因爲IP地址我傳遞到「inet_addr」功能前導零的(192.169.055.075)
的「inet_addr '功能正在以不同的方式解釋。任何關於如何刪除前導零的建議?inet_addr函數和前導零
感謝
char IPAddr[20]; //192.169.055.075
ulAddr = inet_addr(IPAddr);
我試圖使用inet_addr
功能轉換成一個字符的IP地址,但我認爲,因爲IP地址我傳遞到「inet_addr」功能前導零的(192.169.055.075)
的「inet_addr '功能正在以不同的方式解釋。任何關於如何刪除前導零的建議?inet_addr函數和前導零
感謝
char IPAddr[20]; //192.169.055.075
ulAddr = inet_addr(IPAddr);
您可以使用inet_pton(3)
代替 - 它不解釋前導零爲八進制前綴。
如何:
string addr("192.168.055.075");
replace(addr.begin(), addr.end(), '.', ' ');
istringstream iss(addr);
int a,b,c,d;
iss >> a >> b >> c >> d;
ostringstream oss;
oss << a << '.' << b << '.' << c << '.' << d;
string addrWithoutLeadingZeros(oss.str());
inet_addr()與解釋前導零爲八進制字節。 http://www.opengroup.org/onlinepubs/000095399/functions/inet_addr.html – 2009-06-08 18:26:50
弗雷德你應該促進這個真正的答案:) – 2009-06-08 18:29:35