这是我的C ++代码:
#include <stdio.h>
int main ()
{
int n, ip1, ip2, ip3, ip4, port;
unsigned ip;
char str [80];
printf ("Enter IPv4 address: ");
scanf ("%79s",str);
n = sscanf(str, "%3d.%3d.%3d.%3d:%5d", &ip1, &ip2, &ip3, &ip4, &port);
printf ("Content length is %d\r\n", n);
if (n != 4 || n != 5) {
ip = 0;
port = 161;
}
else if (n==4) {
port = 161;
}
ip =(ip1 << 24) + (ip2 << 16) + (ip3 << 8) + ip4;
printf ("ip addr is %d , port is %d \r\n", ip, port);
}
但是xcode总是提示我:
else if (n==4)
永远不会被执行,确实发生了。 条件应该如何?
答案 0 :(得分:3)
请注意(n != 4 || n != 5) = true
答案 1 :(得分:2)
您可能需要if (n != 4 && n != 5)
,因为如果您使用||
,那么n
将不是4或不是5。