【发布时间】:2017-06-09 21:08:24
【问题描述】:
我正在构建这个子网计算器,但现在我被数组卡住了。我想创建将返回数组的新 int 函数,但我不知道我是如何尝试很多东西但仍然不知道,认为它必须用指针做一些事情。我想创建从“while(octet4>0)”开始的新函数。所以 octet4 被传递给函数,函数应该返回功能齐全的数组,然后我可以在 main 中使用它。希望有人会知道我在寻找什么的答案,希望解决方案不会太复杂,因为我只是学习编程并认为这将是一个有趣的项目。
int main() {
int i=0,j,q,s,size=8,temp;
int binary_ip[8];
int netmask;
int mask;
int octet1, octet2, octet3, octet4;
string ip;
cout<<"Vnesite IP naslov, npr. 192.168.32.55:"<<endl;
cin>>ip;
cout<<"Vnesite netmasko, npr. /27:"<<endl;
cin>>netmask;
stringstream stream(ip);
char ch;
stream >> octet1 >> ch >> octet2 >> ch >> octet3 >> ch >> octet4;
while(octet4>0){
binary_ip[i]=octet4%2;
i++;
octet4=octet4/2;
}
switch(i){
case 7:binary_ip[7]=0;
break;
case 6:for(s=6;s<=7;s++)binary_ip[s]=0;
break;
case 5:for(s=5;s<=7;s++)binary_ip[s]=0;
break;
case 4:for(s=4;s<=7;s++)binary_ip[s]=0;
break;
case 3:for(s=3;s<=7;s++)binary_ip[s]=0;
break;
case 2:for(s=2;s<=7;s++)binary_ip[s]=0;
break;
case 1:for(s=1;s<=7;s++)binary_ip[s]=0;
break;
}
for(q=0;q<size/2;q++){
temp=binary_ip[size-1-q];
binary_ip[size-1-q]=binary_ip[q];
binary_ip[q]=temp;}
return 0;
}
【问题讨论】:
-
欢迎来到 Stack Overflow。请花时间阅读The Tour 并参考Help Center 中的材料,您可以在这里问什么以及如何问。
-
@renekton 那个开关盒是干什么用的??
-
所以你想把你的while循环放在一个函数中并返回一个数组?
-
一个“int函数”根据定义返回一个int,而不是一个数组。
-
你为什么不考虑让你的函数填充数组,而不是返回它。这样你就不用为内存分配和释放而烦恼了。