Eingabeschleife
-
So ich hab da ein kleines Problem...
Ich will eine Eingabeschleife programmieren, die eine Zeichenkette (string) solange einliest bis der Benutzer nichts mehr eingibt (den string quasi leer lässt) und mit Enter die Eingabeschleife abbricht.
Ist warscheinlich ziemlich simpel, ich komm aber nicht drauf...
Hier mal mein Ansatz:
[cpp]
#include <iostream>
#include <string>
#include <iomanip>using namespace std;
int main()
{
string a;
do
{
cin >>a;
}
while( so hier sollte jetzt das Schleifenargumen stehen)
return 0;
}
[/cpp]Habs schon mit cin.get() versucht, funktioniert aber nicht so wie ich das will....
Währe nett wenn ihr mir helfen könntet und frohes Fest an alle. :xmas1:
-
Warum nicht einfach
cin>>a
?
-
getline(cin,a,'X'); //X=abbruchbedingung kannst auch ' ' oder '#' etc nehmen
es wird solange eingelesen, bis die abrruchbedingung erfüllt ist
-
backgiggy schrieb:
...und mit Enter die Eingabeschleife abbricht....
mhh, ok @ness hast recht:
cin>>a;
tuts in diesem fall auch
-
Die Eingabe soll ja nacher mit ner übergeordneten for schleife in nem Feld abgespeichert werden. Da hilft mir cin >>a auch nicht sehr viel.....
Aber trotzdem mal danke....
-
Sorry ihr habt recht....
Danke....
-
Hm....
Funktioniert irgendwie beides nicht...... gibt ne endlosschleife....
-
Nix Schleife. einfach nur cin>>a! (
int main() {string t; cin>>t; cout<<t;return 0;};
)
-
cin <<a;??????
Ok jetzt mal genauer...... Ich will ja nicht nur ein einziges mal diesen string einlesen sondern so oft bis der Benutzer nichts mehr bei der Abfrage eingibt und einfach nur enter drückt.
Bsp:. Bash
Bitte geben Sie einen Satz ein>:
:Benutzereingabe
Bitte geben Sie einen Satz ein>:
:Benutzereingabe
Bitte geben Sie einen Satz ein>:
:> ----> Eingabe bleibt leer, es wird nur Enter
gedrückt und die eingabeschleife bricht
ab.Die einzelnen Sätze werden dann in einem Feld gespeichert.....
-
Achso... Dein Problem ist also, dass keine leerstrings eingegeben werden. Da wirst du nicht drumherumkommen, eine eigene Klasse zu schreiben...
-
Hm.... Ja das wollte ich eigentlich vermeiden.....
-
So z.B.
int main () { string str; do { getline (cin, str, '\n'); cout << "\n" << str << endl; } while(str.size() > 0); cout << "END"; }
-
Jeppp.....
So funzt das........
Danke auch.....