[gelöst] Struktur/Schleife/Strings
-
@Gugelmoser
Vielen dank das hat super geklappt.
hätte man das Problem auch durch intialisieren des Feldes lösen können??
-
armes_schwein schrieb:
@Gugelmoser
Vielen dank das hat super geklappt.
hätte man das Problem auch durch intialisieren des Feldes lösen können??äh nein, das hat nichts mit Initialisierungen zu tun.
Wenn etwas im Puffer steckt, dann steckt einfach etwas im Puffer.
Wieso allerdings etwas im Puffer steckt, obwohl du nichts falsches eingeben hast (nehme ich an), weiß ich nicht, vielleicht kann dazu jemand was sagen?lg
-
ich hab gerade gelesen das fflush windows spezifisch ist
so jetzt müsste es gehen:#include <iostream> #include <string> #include <limits> using namespace std; struct Anbieter { string Name; int Pn; int Preis; }; Anbieter Feld[3]; int main() { int i=0; for(i=0;i<3;i++) { cout<<"Name: " << endl; getline(cin, Feld[i].Name); cout << Feld[i].Name << endl; cout<<"Produktnummer: " << endl; cin>>Feld[i].Pn; cout<<"Preis: " << endl; cin>>Feld[i].Preis; cin.ignore(numeric_limits<streamsize>::max(), '\n'); } return 0; }
-
Gucky schrieb:
ich hab gerade gelesen das fflush windows spezifisch ist
Ist es nicht. Aber
fflush(stdin)ist undefiniertes Verhalten.
-
bei mir (visual c++ 2010) geht es

http://www.c-plusplus.net/forum/61595
der letzte beitrag
-
@Glucky: Vielen Dank. habe deine Lösung ausprobiert und die geht auch.
@Gugelmoser: Nagut das ist wahrscheinlich für meinem Anfängerzustand zu viel.
Auf jeden Fall nochmals vielen Dank an allelg

-
Gucky schrieb:
bei mir (visual c++ 2010) geht es

Dir ist die Bedeutung von undefiniertem Verhalten aber hoffentlich bekannt?
Und dein Link bestätigt meine Aussage nur...
-
ja ist es mir und dann hab ich da grad was falsch verstanden..
-
Da es hier gerade ums "Zeichen verwerfen" geht, wollte ich gerade mal fragen, warum cin.sync() nicht immer funktioniert?
C++ Reference:
Synchronizes the buffer associated with the stream to its controlled input sequence. This effectively means that the unread characters in the buffer are discarded.
In einem anderen Forum hat einer folgendes geschrieben:
std::cin.sync() sagt der C++-Std. nirgendwo zu, dass die Zeichen verworfen werden.
Diese 2 Aussagen widersprechen sich ja nun...
Also wie ist es letztendlich mit cin.sync()? Wann kann man davon ausgehen, dass es funktioniert, und wann nicht?lg
-
@armes_schwein: bitte künftig die [cpp]-Tags benutzen, macht den Code besser lesbar
