Eingabefunktion mit leerer Eingabe



  • Hallo Leute,

    C++ ist ja'ne tolle Programmiersprache.
    Nur habe ich das Problem, daß die cin keine leere Eingabe zuläßt.
    Wie kann ich das Problem umgehen?

    Viele Grüße
    Uwe



  • Hi,

    ich verstehe dein Problem nicht. Wozu verlangst du eine Eingabe per 'cin', wenn sie "leer" sein soll ? Und wie meinst du das, dass cin keine leere Eingabe zulässt ?! 😕

    MfG, mikey.



  • Ich meine, daß ich zwar zur Eingabe aufgefordert werde aber mit der eingabe-Taste frei lassen kann.



  • Acha, ich verstehe. Bei einer Leereingabe (also Enter) wiederholt es sich ständig, bis du ein Zeichen eingegeben hast. Ok. Das ist auch normal so. Es kommt immer ganz darauf an, wofür du 'nur' Enter eingeben möchtest, dafür ist cin ungeeignet.

    //Edit:

    Wenn du prüfen möchtest, ob gerade Enter eingegeben wurde, kannst du es beispielweise so machen:

    char eingabe = getch (); //EIN Zeichen einlesen, (ohne bestätigen zu müssen)
    
    if (eingabe != 13) //Wenn eingabe irgendwas anderes als Enter ist, dann:
    {
      cout<<"Kein Enter."<<endl;
    }
    
    else //Wenn eingabe Enter entspricht dann:
    cout<<"Du hast Enter gedrueckt."<<endl;
    

    Um 'getch' verwenden zu können, musst du "conio.h" einbinden. Der Code ist nur ein Beispiel, es kommt immer darauf an, was du genau machen möchtest. Schildere mir am besten deine Absicht (falls es so nicht klappt), damit ich dir entsprechende Hilfe geben kann 😉

    MfG Mikey.



  • benutz lieber getchar(), brauchst keine conio bibo



  • Danke für die Hilfe.

    Ich probiere es mal aus.



  • Kann mir das jemannd für wie Turbo Pascal eine read - bzw readlnfunktion zeigen?

    Danke.



  • hab da eine... aber zuhause.... machisch in 1-2 tagen !!!
    MFG BALTUR !!!!



  • ugoessner schrieb:

    Kann mir das jemannd für wie Turbo Pascal eine read - bzw readlnfunktion zeigen?

    Danke.

    Ist zwar 'ne Weile her, daß ich mit TP gearbeitet habe, aber versuch's mal mit getline().



  • Willst du einen Text eingeben können?
    Dann muss es so lauten:

    char dein_text[20]=""; // 20 mit zeichenanzahl ersetzen, ="" is fürs löschen
    char buffer;           // Zeichenbuffer
    while( (buffer=getchar()) != 13 && index < 20) // auf Enter und max. Länge prüfen
    {  dein_text[index] = buffer; }
    

    Wenn nur ein Zeichen eingegeben soll dann mach es so, wie es der oben gesagt hat! 🙂



  • Hallo,

    bin ganz neu hier und hoffe mich im richtigen Thread zu befinden. Mein Problem ist nicht ganz das hier besprochene, aber ich denke ziemlich ähnlich.

    Ich habe mein Programm per Doppelklick im Explorer gestartet. Es wurden auch alle einzugebenden Zeichen wie von mir geplant eingelesen. Aber die DOS-Eingabeaufforderung ist nach Eingabe des letzten einzulesenden Zeichens gleich wieder zugegangen.

    Ausgetrickst hab ich das Programm damit, dass meine letzten Programmzeilen folgendermaßen aussehen:

    printf("\n\n Zum Beenden irgendeine Zahl und Enter");
    scanf("%d", &irgendeinezahl);

    Das funzt jetzt zwar, ist aber natürlich nicht so toll. Wie kann ich das Programm vom Benutzer einfach durch Enter-Eingabe beenden lassen? Da muss es doch irgendeinen supereinfachen Befehl geben?

    Danke für Eure Hilfe!



  • sorry für die blöde Frage 🙄
    Habs dann doch geschafft, die Antwort in den FAQs zu finden.


Anmelden zum Antworten