我正在尝试编写一些C代码来增加ip地址。我希望其中一个变量"j“在达到256后将其重置为0,因为每八进制只有255个ip地址。我的问题是,我似乎不能使"j“回到0。你知道我做错了什么吗?
int main()
{
int breakCount = 300;
int j = 0;
int x = 0;
for(int i = 0; i < breakCount; i++)
{
printf("class-map type traffic match-all cm%d\n",i);
printf("match source-address ipv4 100.%d.%d.0\n",x,j);
j++;
if (j == 256)
{
x++;
int j = 0;
}
}
return 0;
}/*代码片段输出*/
match source-address ipv4 100.0.253.0
class-map type traffic match-all cm254
match source-address ipv4 100.0.254.0
class-map type traffic match-all cm255
match source-address ipv4 100.0.255.0
class-map type traffic match-all cm256
match source-address ipv4 100.1.256.0
class-map type traffic match-all cm257
match source-address ipv4 100.1.257.0发布于 2014-08-26 21:04:16
你试过把零赋值给j吗?
if (j == 256)
{
x++;
j = 0;
}发布于 2014-08-26 21:03:51
从重设int的int j = 0;中删除它(在循环中),因为现在您创建了一个局部变量,而不是使用前面声明的变量。
发布于 2014-08-26 21:06:17
看起来你在增加单个八位数。最好先将虚线的IPv4字符串转换为一个32位的无符号int,然后再进行增量。
https://stackoverflow.com/questions/25515074
复制相似问题