Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Czyszczenie cin?

Ostatnio zmodyfikowano 2018-06-20 13:02
Autor Wiadomość
magmat
Temat założony przez niniejszego użytkownika
Czyszczenie cin?
» 2018-06-20 12:19:52
Po wywołaniu w mainie write_books(); po wpisaniu autora nie pojawia się komunikat: do you want to add more records. Wyskakuje w pętli menu główne (what do you want to do? ... ).

Oto kod:

C/C++
class book {
    int ID_book;
    string title, author;
public:
    void add_book(); }

void book::add_book() {
    cout << "Creating new book: " << endl;
    cout << "ID: ";
    cin >> ID_book;
    cout << endl << "Title: ";
    getline( cin, title );
    cin.get();
    cout << endl << "Author: ";
    getline( cin, author );
    cin.get();
}

void write_books() {
    char choice;
    fp.open( "books.txt" );
    do {
        system( "cls" );
        bk.add_book();
        fp.write(( char * ) & bk, sizeof( book ) );
        cout << "Do you want to add more records? Y-yes;";
        cin >> choice;
        cin.clear();
    } while( choice == 'y' || choice == 'Y' );
   
    fp.close();
    system( "cls" );
}

int main()
{
    int choice;
    cout << "---=== Library ==---" << endl;
    start:
    choice = 0;
    cout << "What do you want to do?"
    << endl << "1. Add new book."
    << endl << "2. Add new user."
    << endl << "3. Show all books."
    << endl << "4. Show all users."
    << endl << "5. Exit.";
   
    cin >> choice;
   
    switch( choice ) {
    case 1:
        system( "cls" );
        write_books();
        break;
        ...
    case 5:
        return 0;
    }
    goto start;
}
P-171638
mateczek
» 2018-06-20 13:02:27
std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' );
P-171639
« 1 »
  Strona 1 z 1