Ich bin totaler Anfänger in C++ und möchte einfach nur einen Satz mit Leerstellen einlesen und dann ausgeben, aber irgendwie funzt das nicht.Das Problem liegt bei den Leerstellen. Das geht doch mit char *str[100]; und dann scanf("%s" , str); oder?
Hallo, dein Code ist leider nicht ganz korrekt Marius. Du hast using namespace std benutzt aber die std:: nicht entfernt, ein normaler c++ Compiler sollte den Code dir um die Ohren hauen und das cin.get() am Ende wird nicht funktionieren wenn etwas im Eingabestrom drin ist. Wen ich mich nicht irre steht in den FAQ wie man das geschickt handhabt. -- Latein Unterricht ist die spätere Rache der Römer an den Germanen.
Auch wenn using namespace angegeben ist, kann der Namespace explizit angegeben werden. Es ist zwar etwas unschön, aber nicht falsch. Und im Stream sind nach der Benutzung von std::getline keine Rückstände mehr* - es sei denn, du gibst äußerst schnell mehr als eine Zeile ein.
* in diesem speziellen Fall jedenfalls. Prinzipiell entfernt std::getline alles bis zum nächsten \n, oder eines anderen explizit angegebenen Trennzeichens. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe DijkstraDieser Post wurde am 06.04.2008 um 19:06 Uhr von 0xdeadbeef editiert.
[ironie]Naja ich sehe eher dei Frage darin, ob "verbessern" die richtige Aussage ist. Das Programm ist nach der letzen Ausgabe abgearbeitet. Warum noch aufbleiben? Wenn du das dem Programm als Feature hinzufügen willst, ist das i.O. doch ist es eine subjektive Einschätzung, dass das Programm dadurch "verbessert" wurde![/ironie]