C-Programmierung

Thema: C-Programmierung

  1. powder999:

    C-Programmierung

    Ich hätte da mal kurz ne Frage:
    Wenn ich in C programmiere, dass eine unsichtbare Eingabe erfolgt und dafür die getch-Funktion nehme und diese mit if verknüpf, dann wird nach dem ersten drücken der Taste nur die erste if-Bedingung kontrolliert, wenn aber die zweite oder dritte if-Bedingung richtig wär, muss ich auch so oft draufdrücken! Was mach ich falsch?
    Hier mal kurz zur Erklärungdev C++ 4.9.9.2)
    ...
    ...
    ...
    ...
    if (getch("%d",&eingabe)=='a')
    {
    blablab
    }
    else if (getch("%d",&eingabe)=='b')
    {
    blablab
    }
    else if (getch("%d",&eingabe)=='c')
    {
    blablab
    }
     
  2. danimath:
    Wenn Du z.B. "b" drückst, dann frisst das getch im ersten if schon dieses Zeichen, so dass der Eingabepuffer wieder leer ist. Besser: vor der if-Konstruktion einmal getch und das Ergebnis in eine Variable speichern, und die Variable in der if-Konstruktion auswerten.

    viele Grüße
    Andreas
    #define true ('/'/'/')
    #define false ('-'-'-')
     
  3. powder999:
    und wie mach ich das?
     
  4. powder999:
    int eing;
    int eingabe;
    int zufallszahl;
    getch("%c",&eingabe)=eing;
    if (eing=='l')
    {
    srand(time(0));
    zufallszahl = 1+(rand() % (10-1));
    printf("Die Zufallszahl ist diesmal %d\n\n",zufallszahl);
    }
    else if (eing=='m')
    {
    srand(time(0));
    zufallszahl = 1+(rand() % (25-1));
    printf("Die Zufallszahl ist diesmal %d\n\n",zufallszahl);
    }
    else if (eing=='s')
    {
    srand(time(0));
    zufallszahl = 1+(rand() % (50-1));
    printf("Die Zufallszahl ist diesmal %d\n\n",zufallszahl);
    }
    Geändert von powder999 (19.01.2012 um 17:21 Uhr)
     
  5. powder999:
    Das geht ned!!
     
  6. Avatar von radbruch

    radbruch:
    Variable links vom = wird mit dem Wert rechts vom = gefüllt:

    eing = getch("%c",&eingabe); wäre richtiger
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!
     
  7. danimath:
    Zeile 4:
    Code: [Ansicht]
    eing=getch("%c",&eingabe);
    #define true ('/'/'/')
    #define false ('-'-'-')
     
  8. powder999:
    Danke für die schnellen Antworten, ihr seid super!
     
  9. Avatar von avrrobot

    avrrobot:
    Ach ja, ich habe früher auch immer dev c++ verwendet, aber ich finde Code::Blocks deutlich besser.
    Du kannst es dir ja einfach mal anschauen.
     
  10. Avatar von Felix G

    Felix G:
    Zitat Zitat von avrrobot Beitrag anzeigen
    Ach ja, ich habe früher auch immer dev c++ verwendet, aber ich finde Code::Blocks deutlich besser.
    Du kannst es dir ja einfach mal anschauen.
    Und ich habe früher immer Code::Blocks verwendet, bis ich eines Tages auf Eclipse gestoßen bin...
    seitdem kommt mir sowas wie Code::Blocks nich mehr auf die Platte

    Eclipse ist super komfortabel und hat sehr viele geile Funktionen, mit denen man extrem effizient programmieren kann.
    So viele Treppen und so wenig Zeit!