-1
LongInt i1; 

cin >> i1;

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

4

1 に答える 1

3

演算子自体をオーバーロードするには、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 の実装によって異なります。

于 2012-04-09T19:42:34.253 に答える