Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ inet_addr函数和前导零_C++_Network Protocols - Fatal编程技术网

C++ inet_addr函数和前导零

C++ inet_addr函数和前导零,c++,network-protocols,C++,Network Protocols,我试图使用inet\u addr函数来转换char IP地址,但我认为由于我传递给'inet\u addr'函数的IP地址的前导是零(192.169.055.075),因此'inet\u addr'函数的解释是不同的。有没有关于如何删除前导零的建议 谢谢 char IPAddr[20]; //192.169.055.075 ulAddr = inet_addr(IPAddr); 您可以改用inet\u pton(3)——它不会将前导零解释为八进制前缀。如何: string addr("192.

我试图使用
inet\u addr
函数来转换char IP地址,但我认为由于我传递给'inet\u addr'函数的IP地址的前导是零
(192.169.055.075)
,因此'inet\u addr'函数的解释是不同的。有没有关于如何删除前导零的建议

谢谢

char IPAddr[20]; //192.169.055.075
ulAddr = inet_addr(IPAddr);

您可以改用
inet\u 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() );
字符串地址(“192.168.055.075”);
替换(addr.begin()、addr.end();
istringstream iss(地址);
INTA、b、c、d;
iss>>a>>b>>c>>d;
ostringstream oss;

oss inet_addr()将前导零的八位字节解释为八进制。弗雷德:你应该把它推广到一个真实的答案:)@Doug,我认为它并没有真正回答这个问题,因为它没有说要做什么。谢谢你……这里还有另一个解决我问题的方法。int a[4];charc[20];如果(sscanf(192.169.055.075),%03d.%03d.%03d.%03d),a,a+1,a+2,a+3)==4{sprintf(c,,%d.%d.%d.%d,a[0],a[1],a[2],a[3]);]