Hilfe Namenabfrage funktioniert nicht [Gelöst]
-
ich möchte ein kleines Spiel machen das ist natürlich nur der Anfang:
#include <iostream> #include <fstream> using namespace std; //Funktionsprototypen char NameAbfrage (char SpielerName[20]); //Hauptprogramm int main () { //Variablen char SpielerName[20]; //SpielerName char Spielstand; //Für Abfrage Spielstand //Abfrage Spielstand cout << "(n)eues Spiel oder (a)ltes Spiel" << endl; cin >> Spielstand; //if else Schachtel if (Spielstand == 'n') { //Menü Ausgabe cout << "Nop-Erstellen" << endl; cout << "--------------" << endl; NameAbfrage (SpielerName); //Spielername abfragen }//Neuse Spiel else if (Spielstand == 'a') { }//Altes Spiel else { cout << "Falsche Eingabe" << endl; } return 0; } // Namen Eingeben für Spiel // char NameAbfrage (char SpielerName[20]) { cout << "Bitte Namen fuer Nop eingeben \n(zwischen 1 und 18 Zeichen): "; cin.get (SpielerName, 19); //Speichern ofstream Output ("SpielerName.sp", ios::binary); Output.write ((char*) &SpielerName, sizeof (SpielerName)); Output.close (); //Datei schließen cout << endl; return 0; } //Namemein complimierer zeigt keinen Fehler aber wenn ich das Programm starte überspringt er einfach die Namensabfrage. Warum? und wie kann ich das ändern?
Bin erst Anfänger./edit pumuckl: [cpp]-Tags eingefügt, nächstemal bitte selber machen

-
Liegt wahrscheinlich daran, dass du den Eingabepuffer zwischendurch leeren musst:
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1383244.html
-
_matze schrieb:
Liegt wahrscheinlich daran, dass du den Eingabepuffer zwischendurch leeren musst:
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1383244.html
also daran liegst nicht habs ausprobiert funktioniert trotzdem nicht.
trotzdem danke
-
Bau doch einfach nach der Eingabe des Spielerstandes zum Prüfen noch eine Ausgabe ein:
cout << "(n)eues Spiel oder (a)ltes Spiel" << endl; cin >> Spielstand; cout << "Eingabe: " << Spielstand << endl;
-
Doch, liegt daran. Probier das hier mal:
#include <iostream> #include <fstream> using namespace std; //Funktionsprototypen char NameAbfrage (char SpielerName[20]); //Hauptprogramm int main () { //Variablen char SpielerName[20]; //SpielerName char Spielstand; //Für Abfrage Spielstand //Abfrage Spielstand cout << "(n)eues Spiel oder (a)ltes Spiel" << endl; cin >> Spielstand; std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); //if else Schachtel if (Spielstand == 'n') { //Menü Ausgabe cout << "Nop-Erstellen" << endl; cout << "--------------" << endl; NameAbfrage (SpielerName); //Spielername abfragen }//Neuse Spiel else if (Spielstand == 'a') { }//Altes Spiel else { cout << "Falsche Eingabe" << endl; } getchar(); return 0; } // Namen Eingeben für Spiel // char NameAbfrage (char SpielerName[20]) { cout << "Bitte Namen fuer Nop eingeben \n(zwischen 1 und 18 Zeichen): "; cin.get (SpielerName, 19); std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); //Speichern ofstream Output ("SpielerName.sp", ios::binary); Output.write ((char*) &SpielerName, sizeof (SpielerName)); Output.close (); //Datei schließen cout << endl; return 0; } //Name
-
_matze schrieb:
Doch, liegt daran. Probier das hier mal:
#include <iostream> #include <fstream> using namespace std; //Funktionsprototypen char NameAbfrage (char SpielerName[20]); //Hauptprogramm int main () { //Variablen char SpielerName[20]; //SpielerName char Spielstand; //Für Abfrage Spielstand //Abfrage Spielstand cout << "(n)eues Spiel oder (a)ltes Spiel" << endl; cin >> Spielstand; std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); //if else Schachtel if (Spielstand == 'n') { //Menü Ausgabe cout << "Nop-Erstellen" << endl; cout << "--------------" << endl; NameAbfrage (SpielerName); //Spielername abfragen }//Neuse Spiel else if (Spielstand == 'a') { }//Altes Spiel else { cout << "Falsche Eingabe" << endl; } getchar(); return 0; } // Namen Eingeben für Spiel // char NameAbfrage (char SpielerName[20]) { cout << "Bitte Namen fuer Nop eingeben \n(zwischen 1 und 18 Zeichen): "; cin.get (SpielerName, 19); std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); //Speichern ofstream Output ("SpielerName.sp", ios::binary); Output.write ((char*) &SpielerName, sizeof (SpielerName)); Output.close (); //Datei schließen cout << endl; return 0; } //Namevielen dank hattest doch recht jetzt funktioniert.
dann kann ich weiter machen