c++ 中我的一个子函数中有while循环,想在结束的时候,把里面的一个变量返回出来
问题是,return语句在while括号的外面导致了,无法识别这个变量,高手帮帮忙如何解决呢?#include<iostream>classListEntry{char*...
问题是,return语句在while括号的外面导致了,无法识别这个变量,高手帮帮忙如何解决呢?
#include <iostream>
class ListEntry{
char* monkey;
ListEntry* firstaddress;
public:
ListEntry(char *);
void display()
{
std::cout<<monkey<<std::endl;
}
void addentry(ListEntry& l)
{l.firstaddress=this;}
};
ListEntry :: ListEntry(char* m)
{
monkey=new char[strlen(m)];
strcpy(monkey,m);
}
ListEntry* putin(ListEntry* );
void main(){
char na[]="yu";
ListEntry re(na);
ListEntry* uu='\0';
re.display();
ListEntry* list=putin(uu);
while(list !=0)
list++->display();
}
ListEntry* putin(ListEntry* mm)
{
ListEntry * list='\0';
while(1)
{
std::cout<<"Enter name series"<<std::endl;
char name[10];
std::cin>>name;
if(strcmp(name, "end") == 0)
break;
ListEntry * list=new ListEntry(name);
if(mm !=0)
{
mm->addentry(*list);
mm=list;
}
}
return list;
}
这个是程序的代码,单步检验发现输入end,返回值为0,如何才能打印list链表呢? 展开
#include <iostream>
class ListEntry{
char* monkey;
ListEntry* firstaddress;
public:
ListEntry(char *);
void display()
{
std::cout<<monkey<<std::endl;
}
void addentry(ListEntry& l)
{l.firstaddress=this;}
};
ListEntry :: ListEntry(char* m)
{
monkey=new char[strlen(m)];
strcpy(monkey,m);
}
ListEntry* putin(ListEntry* );
void main(){
char na[]="yu";
ListEntry re(na);
ListEntry* uu='\0';
re.display();
ListEntry* list=putin(uu);
while(list !=0)
list++->display();
}
ListEntry* putin(ListEntry* mm)
{
ListEntry * list='\0';
while(1)
{
std::cout<<"Enter name series"<<std::endl;
char name[10];
std::cin>>name;
if(strcmp(name, "end") == 0)
break;
ListEntry * list=new ListEntry(name);
if(mm !=0)
{
mm->addentry(*list);
mm=list;
}
}
return list;
}
这个是程序的代码,单步检验发现输入end,返回值为0,如何才能打印list链表呢? 展开
7个回答
展开全部
外边,如果放在里边就谈不上所谓的循环了,因为语句一执行return 就跳出函数
追问
问题就是这个啊,我做的是一个循环输入,直到输入end跳出循环
如果把返回放在while里面那就只能返回第一个输入的东西了
追答
在while语句之前定义你的变量,就变量的作用域也就高了,就不会出现变量为定义的错误了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不要在while里定义变量,在它外面定义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的目的是打印这个list,可是没有数据的存储怎么输出啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询