vector problem
-
ich haben deinen code getestet und er brachte das ergebniss das die erste eingabe übersprungen wurde.
ich habe extra meinen code gepostet da du meinstest er würde perfekt bei dir funktionieren.
danke für den typ wie ich die eingaben auf korektheit überprüfen kann, das ist eh das nächste was gemacht werden müsste(war deswegen au noch nicht vorhanden)
-
|-|/-\73 schrieb:
ich haben deinen code getestet und er brachte das ergebniss das die erste eingabe übersprungen wurde.
ich habe extra meinen code gepostet da du meinstest er würde perfekt bei dir funktionieren.
Ich sagte, dass mein Code perfekt funktioniert bei mir. Also musst du meinen Code falsch implementiert haben und deshalb sollst du den mal zeigen. Also wie du meinen Code implementiert hast.
Ich habe es gerade nochmals nachgeprüft. Mein Code funktioniert! Da wird nichts übersprungen.
Grüssli
-
database* database::set_data(){ cout << "Interpret: "; getline(cin,interpret); cout << endl; cout << "Album: "; getline(cin,album); cout << endl; if(release == 0000){ cout << "Erscheinungsjahr: "; cin >> release; cout << endl;}; cout << "Anzahl der Lieder: "; cin >> track_numbers; cout << endl; std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.clear(); std::string cache; for(int i = 1; i <= track_numbers; i++) { std::cout << i << ": "; std::getline(std::cin, cache); track_names.push_back(cache); std::cout << track_names.back();// nur zu Testzwecken noch drin //std::cout << std::endl; }; return this; };so hab ich das implementiert. bestimmt is das falsch un deswegen wird der erste wert übersprungen.
-

Ich frage vielleicht mal anders, was für einen Compiler und eine Standardbibliothek verwendest du? Macht keinen Sinn, dass dies nicht funktionieren sollte.Grüssli
-
was für bibliotheken ich nutze steht hier
|-|/-\73 schrieb:
#include <iostream> #include <string> #include <vector> #include <fstream>und compiler is GCC.
-
will mir den keiner helfen oder hat niemand eine antwort darauf?
-
|-|/-\73 schrieb:
will mir den keiner helfen oder hat niemand eine antwort darauf?
Dann zeig mal, wo genau dein Problem liegt.
-
|-|/-\73 schrieb:
will mir den keiner helfen oder hat niemand eine antwort darauf?
Also:
1. Ich hatte gefragt, welche Standardbibliothek du verwendest, nicht welche Header. Denn vielleicht ist die Bibliothek, welche du verwendest, verbuggt oder sowas ähnliches.
2. Dein angegebenen Code, funktioniert bei mir einwandfrei und sollte auch einwandfrei funktionieren. Daher kann nur Punkt 1 zutreffen, also das deine Standardbibliothek einen Bug hat oder dass du es nicht so umgesetzt hast, wie du es zeigst.
3. Alternativ könntest du auch mal das hier versuchen:
std::cin.ignore(std::cin.rdbuf()->in_avail());
ersetzen durch:
std::cin.sync();Mehr fällt mir dazu nicht mehr ein.
Grüssli
-
is vll ne dumme frage..aber wo sehe ich was ich für ne standartbibliothek verwende??
BIG THX...die funktion std::cin.sync(); hat geholfen.
es funktioniert nun.
-
|-|/-\73 schrieb:
is vll ne dumme frage..aber wo sehe ich was ich für ne standartbibliothek verwende??
Standardinclude path. Dort sind die zu finden. Also von der Entwicklungsumgebung. Such einfach mal z.b nach 'vector'.