getline spinnt
-
Ich habe aber ähnliche Probleme zur Zeit, sehr seltsam...
-
michaelwitzik schrieb:
Ich habe aber ähnliche Probleme zur Zeit, sehr seltsam...
Ich finde es sehr ärgerlich, ich meine ich hab andere Probleme im Program als das ich dazu Zeit hätte mich damit zu befassen wie man eine Zeile einliest, man kann ja nicht mal einen vernünftigen Testlauf starten weil die Eingabe nicht richtig läuft das ist doch echt zum kotzen.
-
Entferne mal das cin.get() aus wait(), das hat in diesem Kontext nichts da zu suchen. Denn wenn Du das Wort 'exit' eingibst, geht das 'e' wegen cin.get() verloren. Da die übrigen Zeichen noch im Eingabepuffer stehen, läuft das Programm weiter und getline holt sich den Rest aus dem Eingabepuffer, in diesem Fall 'xit'.
-
Ja habe das cin.get() jetzt mal aus der Funktion wait() entfernt jetzt nimmt der das exit an aber man muss sozusagen immer zweimal mit Enter bestätigen, bei allen Eingaben:
Artikel: Kreuzmutter small //jetzt Enter //springt in eine leere Zeile wieder Enter Artikel: Kreuzmutter very small //jetzt wieder Enter //wieder leere Zeile weiter mit Enter Artikel: exit //Enter //leere Zeile wieder Enter Programmende
Kann man das auch irgendwie in den Griff bekommen ?
-
Hast Du den STLFix, den SideWinder erwähnt hat, ausprobiert? Der sollte eigentlich genau diesen Bug beheben.
-
Bei VS.NET is dieser Bug meines Wissens bereits beseitigt.
Aber versuch mal das hier:
do { cout << "Artikel: "; wait(); getline(cin,artikelname, '\n'); if(artikelname=="exit") break; else vecartikel.push_back(artikelname); }while(true);
Ich habs jetzt nicht getestet, aber vielleicht bringts ja was.
-
In VC 7.1 gibt es ihn auf jeden Fall nicht mehr, bei VC 7.0 weiß ich es nicht.
Und mit dem STLfix gehts bei VC 6.0 auf jeden Fall auch ohne Probleme.
-
Loomis schrieb:
Bei VS.NET is dieser Bug meines Wissens bereits beseitigt.
Aber versuch mal das hier:
do { cout << "Artikel: "; wait(); getline(cin,artikelname, '\n'); if(artikelname=="exit") break; else vecartikel.push_back(artikelname); }while(true);
Ich habs jetzt nicht getestet, aber vielleicht bringts ja was.
Nein leider funktioniert es nicht das "Enter" Problem ist immer noch vorhanden.
-
Hab jetzt mal diesen VC-STL Patch eingespielt die entsprechendenen Dateien kopiert wie in der *.txt Datei stand, jetzt bekomme ich aber einen Haufen Fehlermeldungen. Muss man da noch was einstellen in VC++.NET ?
-
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(39) : warning C4346: '_A::size_type': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(610): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'std::basic_string<_E,_Tr,_A>'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(39) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'size_type'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(39) : error C2501: 'std::basic_string<_E,_Tr,_A>::size_type': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(40) : warning C4346: '_A::difference_type': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(40) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'difference_type'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(40) : error C2501: 'std::basic_string<_E,_Tr,_A>::difference_type': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(41) : warning C4346: '_A::pointer': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(41) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'pointer'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(41) : error C2501: 'std::basic_string<_E,_Tr,_A>::pointer': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(42) : warning C4346: '_A::const_pointer': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(42) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'const_pointer'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(42) : error C2501: 'std::basic_string<_E,_Tr,_A>::const_pointer': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(43) : warning C4346: '_A::reference': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(43) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'reference'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(43) : error C2501: 'std::basic_string<_E,_Tr,_A>::reference': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(44) : warning C4346: '_A::const_reference': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(44) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'const_reference'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(44) : error C2501: 'std::basic_string<_E,_Tr,_A>::const_reference': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(45) : warning C4346: '_A::value_type': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(45) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'value_type'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(45) : error C2501: 'std::basic_string<_E,_Tr,_A>::value_type': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(46) : warning C4346: '_A::pointer': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(46) : error C2144: Syntaxfehler: 'std::iterator' sollte auf ';' folgen
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(46) : error C2698: Die using-Deklaration für 'pointer' kann nicht zusammen mit der vorhandenen using-Deklaration für 'pointer' verwendet werden
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(46) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.
CFilm.cpp
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(39) : warning C4346: '_A::size_type': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(610): Siehe Verweis auf Instanziierung der kompilierten Klassenvorlage 'std::basic_string<_E,_Tr,_A>'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(39) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'size_type'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(39) : error C2501: 'std::basic_string<_E,_Tr,_A>::size_type': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(40) : warning C4346: '_A::difference_type': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(40) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'difference_type'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(40) : error C2501: 'std::basic_string<_E,_Tr,_A>::difference_type': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(41) : warning C4346: '_A::pointer': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(41) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'pointer'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(41) : error C2501: 'std::basic_string<_E,_Tr,_A>::pointer': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(42) : warning C4346: '_A::const_pointer': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(42) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'const_pointer'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(42) : error C2501: 'std::basic_string<_E,_Tr,_A>::const_pointer': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(43) : warning C4346: '_A::reference': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(43) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'reference'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(43) : error C2501: 'std::basic_string<_E,_Tr,_A>::reference': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(44) : warning C4346: '_A::const_reference': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(44) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'const_reference'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(44) : error C2501: 'std::basic_string<_E,_Tr,_A>::const_reference': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(45) : warning C4346: '_A::value_type': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(45) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'value_type'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(45) : error C2501: 'std::basic_string<_E,_Tr,_A>::value_type': Fehlende Speicherklasse oder Typspezifizierer
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(46) : warning C4346: '_A::pointer': Abhängiger Name ist kein Typ
Präfix mit 'typename' zum Angeben eines Typs
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(46) : error C2144: Syntaxfehler: 'std::iterator' sollte auf ';' folgen
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(46) : error C2698: Die using-Deklaration für 'pointer' kann nicht zusammen mit der vorhandenen using-Deklaration für 'pointer' verwendet werden
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\XSTRING(46) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.
Generieren von Code...