LongInt i1;
cin >> i1;
ここで、LongInt は整数のスタックを含むクラスです。入力をクラスのスタックに格納したいのですが、それは、クラス ファイルで >> 演算子をオーバーロードする必要があることを意味すると思います。問題は、cin >> "111343241" のような入力を 1 桁ずつスタックにプッシュする方法がわからないことです。どうすればこれを機能させることができますか?
演算子自体をオーバーロードするには、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;
}
1 桁を LongInt にプッシュする方法は、LongInt の実装によって異なります。