входной поток c ++ не ожидает ввода с перегрузкой оператора извлечения - PullRequest
0 голосов
/ 12 июня 2010

Эта проблема меня раздражает.Вместо ожидания ввода, он просто закрывается.Я пытался понять это некоторое время сейчас.Есть идеи?

    istream& operator>>(istream& is, Account &a) {
    cout << "Enter an accoutn number: ";
        is >> a.accountNo;
        cout << endl;
    cout << "Balance: ";
        is >> a.bal;
    return is;
    }

1 Ответ

1 голос
/ 12 июня 2010

Когда я поместил его в следующую программу, он работал нормально (хотя он не работал бы так хорошо, если бы вы попытались прочитать учетную запись из чего-либо, кроме std::cin):

#include <iostream>

struct Account { 
    int accountNo;
    int bal;
};

using std::ostream;
using std::istream;
using std::cout;
using std::endl;

istream& operator>>(istream& is, Account &a) {
    cout << "Enter an account number: ";
    is >> a.accountNo;
    cout << endl;
    cout << "Balance: ";
    is >> a.bal;
    return is;
}

ostream &operator<<(ostream &os, Account const &a) { 
    return os << "Account #: " << a.accountNo << "\tBalance: " << a.bal;
}

int main() { 
    Account a;
    std::cin >> a;

    std::cout << a;
    return 0;
}
...