LongInt i1;
cin >> i1;
其中LongInt是一个包含整数堆栈的类。我想将输入存储到类中的堆栈中,我假设这意味着我必须在我的类文件中重载>>操作符。问题是,我不知道如何将cin >>“111343241”这样的输入按位数推入堆栈中。我将如何完成这项工作?overloading >>堆栈列表类的操作符
LongInt i1;
cin >> i1;
其中LongInt是一个包含整数堆栈的类。我想将输入存储到类中的堆栈中,我假设这意味着我必须在我的类文件中重载>>操作符。问题是,我不知道如何将cin >>“111343241”这样的输入按位数推入堆栈中。我将如何完成这项工作?overloading >>堆栈列表类的操作符
重载运营商本身,实现了get环,定义了一个命名空间范围
std::istream& operator >>(std::istream& is, LongInt& li) {
char c;
while(is.get(c).good()) {
if(!std::isdigit(c)) {
is.unget();
break;
}
...push it to li
}
return is;
}
你怎么推个位数的LONGINT取决于具体的实现LONGINT的。
你的循环条件应该是'while(is.get(c))'。 – 2012-04-09 19:44:12
正确 - 而且isgood()无论如何都是错误的名字。 ;-) – modelnine 2012-04-09 19:45:40
请分享您的方法。 – 2012-04-09 19:36:50
等一下,什么'cin >>“111343241”'是什么意思?你不能接受输入,然后把它放入一个字符串中。你的意思是'output << i1;'? – 2012-04-09 19:37:17
我的意思是cin >> 193241924924,只是一些不能存储在普通int中的数字。我有一个LongInt类,其中有一个名为s1的数据字段,但我甚至不知道从哪里开始分解cin,以便按位数给出数字 – 2012-04-09 19:39:24