Anfänger Programmierer hier, ich habe Probleme mit der Zeichenfolge Eingabe Struktur des Programms - Ich habe Probleme beim Speichern der Zeichenfolge Benutzereingabe für Jahr, Genre und Regisseur. Ich habe versucht, nicht mit cin >> mit getline, und verwenden Sie nur get() und getline() - aber der Fehler besteht immer noch mit den String-Eingaben nicht richtig gespeichert werden. EX: Wenn Benutzer die Auswahl "B", , eingibt und die Jahr-Zeichenketteneingabe "2015" in die Zeichenkettenvariable whatYear speichert, führt dies dazu, dass nicht richtig gespeichert wird. Wie repariert man?Wie String-Benutzereingabe ohne Verwendung von cin.ignore() und clear() - C++ zu beheben?
#include <iostream>
#include <cctype>
#include <string>
void printYear();
void printGenre();
void printDirector();
using namespace std;
int main(){
char choice;
Der Benutzer wird eine Auswahl eingeben: 'B' für das Jahr, 'C' für Genre und 'D' für den Regisseur.
cout << "Hello movie'goer, please select one of the following choices:\n\n"
<< "B - Display movies in a specific year\n"
<< "C - Display movies in a specific genre\n"
<< "D - Display movies from a specific director\n\n"
<< "Enter your choice: ";
choice = cin.get();
//Input validation
while (toupper(choice) != 'B' && toupper(choice) != 'C' &&
toupper(choice) != 'D') {
cout << "Choice is invalid, the choice must be one of the following:'B', 'C', or"
<< " 'D'. Re-enter your choice: ";
choice = cin.get();
}
cout << endl << endl;
Hier verarbeitet es die Wahl. 'B' wird die String-Jahr-Eingabe ausgeben, 'C' druckt die String-Genre-Eingabe und 'D' druckt die String-Director-Eingabe.
Wenn die Auswahl 'B' für das Jahr eingegeben wird, habe ich Probleme beim Speichern der Jahreseingabe in der Stringvariablen whatYear.
void printYear()
{
string whatYear;
cout << "Enter a specific year: " << endl;
getline(cin, whatYear);
Ich überprüft, ob die Zeichenfolge Eingabe erfolgreich gespeichert wurde, aber es war ein Fehler.
cout << "The input stored in string whatYear is: " << whatYear;
}
Ich habe das gleiche Problem auch hier mit dem String-Eingang nicht erfolgreich in das String-Variable whatGenre gespeichert werden.
void printGenre()
{
string whatGenre;
cout << "Enter a specific genre: " << endl;
getline(cin, whatGenre);
Die cout-Anweisung wird hier nicht korrekt angezeigt.
cout << "The input stored in string whatGenre is: " << whatGenre;
}
Das gleiche Problem mit den anderen beiden Funktionen.
void printDirector()
{
string whatDirector;
cout << "Enter a specific director " << endl;
getline(cin, whatDirector);
cout << endl << "The input stored in string whatGenre is: " << whatDirector;
}
Beachten Sie, dass Stack Overflow nicht als Helpdesk für die Lösung Ihrer persönlichen Probleme gedacht ist, sondern als eine FAQ wie Ressource für zukünftige Forschung. Das Problem, das Sie hatten, wurde oft zuvor gestellt, und eines der am häufigsten gestellten Q & A-Paare enthält bereits die Antwort. Daher habe ich deine Frage als Duplikat markiert. –