Ich bin ein sequentielles Programm auf Library Management System Schreiben die von zwei structs (Bücher und Studenten) und mehrere Funktionen besteht.C++ Programm springt über die Leitungen während der Eingang unter [Konsolenanwendung]
Alles funktioniert dementsprechend außer wenn ich versuche, Konsole Eingang in der Funktion add_new_book() für das struct Buch, es überspringt Linie zu nehmen, während Eingang nehmen. Ich habe vorher recherchiert und dann die Funktion cin.ignore() verwendet. Diese Funktion arbeitet für die ersten beiden String-Eingänge, aber nachdem sie die ersten zwei Eingaben gemacht hat, überspringt sie die verbleibenden Eingabezeilen und beendet die Funktion.
Hier unten ist der Code von struct Buch und Funktion add_new_book()
struct books{
int book_id;
string book_name;
string author_name;
string subject;
int fine;
};
void add_new_book(){
struct books b;
cout << "Enter the Book Name : ";
getline(cin, b.book_name);
cin.ignore();
//cin >> b.book_name;
cout << "Enter Author's Name : ";
getline(cin, b.author_name);
cin.ignore();
cout << "Enter Book id : ";
cin >> b.book_id;
cout << "Enter Book Cost : ";
cin >> b.fine;
cin.ignore();
cout << "Enter the Subject : ";
getline(cin, b.subject);
cout << "\n",b.book_name,b.author_name,b.book_id,b.fine,b.subject;
cout << "\n\n\t\t SUCCUSSFULLY ADDED \n";
// open a file in write mode.
ofstream outfile;
outfile.open("book1.txt");
outfile << b.book_name << endl;
outfile.close();
admin();
}
1. Bitte beheben Sie die seltsame Einrückung und überflüssige Leerzeilen in Ihrem Code. 2. Ich weiß nicht, was Sie denken 'cout <<" \ n% 25s% 25s% 25s% 25d% 25d % 25s ", b.buch_name, b.autor_name, b.buch_id, b.fine, b. Subject; 'tut, aber es ist eine langatmige Art zu sagen' cout << bsubject; '. Wenn Sie den Compiler-Warnlevel auf Maximum stellen, wird es sich beschweren. –
3: 'struct books b': Das ist C++, man kann einfach' books b; 'schreiben - auch würde ich die Klasse mit der Singular nennen (verwende den Plural für einen Container mit mehreren Büchern) - also' book b' ; –