Seite 1 von 1

Fehler mit der Verwendung von std::getline(std::cin,...)

Verfasst: Mi Aug 24, 2016 1:32 pm
von jsut
Hallo proggen.org!

Ich bin dabei, c++ zu üben (Anfänger) und möchte ein Programm schreiben, das ein LGS nach Gauß-Schritten löst.
Dabei stoße ich leider schon ganz zu Beginn auf ein Problem: Hier zunächst die fraglichen Zeilen:

Code: Alles auswählen

int anzahlGleichungen;
	std::cin >> anzahlGleichungen;
	std::vector<std::string> vecStrGleichungen(anzahlGleichungen);	//Die Gleichungen sollen als Strings im  
													//Vektor "vecStrGleichungen" gespeichert werden
	for(int i=0;i<anzahlGleichungen;i++) {
		std::cout << (i+1) << ": ";
		std::getline(std::cin,vecStrGleichungen[i]);
		std::cout << std::endl;
	}
Wenn ich das Programm, so wie es ist, aufrufe, lässt sich der String 1 mit den Koeffizienten gar nicht beschreiben; die erste Zeile bleibt leer und die Eingabe startet bei "2: " (also Index 1).

Was mache ich da falsch? Ich hoffe, dass mir die vermutlich einfache Frage verziehen wird; aus der cpp-Referenz werde ich bisher nicht immer viel schlauer... :?

Im voraus ein herzliches Dankeschön für die Hilfe!
Edit by cloidnerux: Code-Tags

Re: Fehler mit der Verwendung von std::getline(std::cin,...)

Verfasst: Mi Aug 24, 2016 1:42 pm
von cloidnerux
Hallo und Willkommen im Forum,

dein Problem ist etwas Versteckt, aber nichts neues. Lies dir dazu diesen FAQ Eintrag durch, dieser sollte dir helfen:
https://www.proggen.org/doku.php?id=c:faq:input-puffer