"nichts" in Variable einlesen
-
Hallo,
ist vielleicht eine dumme Frage, aber ich weiß nicht, nach was ich in meinem c++-Buch suchen soll.
Ich habe folgendes Problem:
Ich möchte eine Variable "eingabe" mit cin füllen. Anschließend möchte ich abfragen, ob etwas in der Variablen steht. Sollte dies nicht der Fall sein, möchte ich ihr einen Default-Wert übergeben. Das ganze habe ich mir in etwa so gedacht:cin>> eingabe; if (eingabe == "") eingabe = "defaultwert";Nun kann ich in der Eingabeshell aber nicht nichts eingeben.
Wenn ich nur die Enter-Taste drücke, erhalte ich solange Leerzeilen, bis ich eine Eingabe tätige. Erst dann läuft mein Programm weiter.Kann mir jemand helfen wie ich dies lösen könnte? Vielen Dank schon mal.
-
hi,
#include <iostream.h> #include <string.h> int main() { char eingabe[100]; cin.get(eingabe,99); if(strlen(eingabe) == 0) strcpy(eingabe, "default"); cout << endl << eingabe << endl; return(0); }mfg
-
Nachtrag:
Es ist aber meiner Meinung nach besser diese Variante zu verwenden:#include <iostream.h> #include <string.h> int main() { char eingabe[100]; cin.getline(eingabe, sizeof(eingabe) - 1); if(strlen(eingabe) == 0) strcpy(eingabe, "default"); cout << endl << eingabe << endl; return(0); }es wird einfach eine Zeile eingelesen. D.h bis das zeichen '\n' auftritt. Du kannst allternativ alls 3ten parameter ein anderes Zeichen bei cin.getline eingeben, welches als Einleseende dienen soll.
mfg
-
Ich würde nachfolgende Lösung bevorzugen.
#include <iostream> #include <string> using namespace std; int main() { string eingabe; getline(cin, eingabe); if (eingabe.empty()) eingabe = "default"; cout << eingabe << endl; return(0); }
-
Dabei gibts keine Längenbeschränkung.

-
Vielen Dank,
Ihr habt mit sehr geholfen!