anfänger



  • hallo alle
    bin neu hier.
    habe mich mit microsoft visual studio net an c herangewagt.

    habe folgendes geschrieben:

    #include <stdio.h>
    int main()
    {
      char cAsciiZahl='a';
      int isumme=1;
      for (isumme=1;isumme<5;isumme++)
      {
        printf("\n\t Geben Sie einen Zahl ein:");
        scanf("%c",&cAsciiZahl);
        printf("\n|\tASCII\t|\tDez.\t|\tOct.\t|\tHex.\t|");
        printf("\n|\t%c\t|\t%i\t|\t%o\t|\t%X\t|\n",cAsciiZahl,cAsciiZahl,cAsciiZahl,cAsciiZahl);
    
      }
      printf("error\n");
      return 0;
    }
    

    leider erscheint beim ausführen der ersteteil 2 mal.
    wo ist der fehler?
    gruß
    lupara



  • ähm eigentlich müsste der erste teil 5 mal kommen (wenn du das in der for schleife meinst) wenn du willst das es einfach nur 1 mal kommt dann nimm das for() weg.



  • danke für die antwort:
    die ausgabe schaut so aus:

    Geben Sie einen Zahl ein:o

    | ASCII | Dez. | Oct. | Hex. |
    | o | 111 | 157 | 6F |

    Geben Sie einen Zahl ein:
    | ASCII | Dez. | Oct. | Hex. |
    |
    | 10 | 12 | A |

    Geben Sie einen Zahl ein:o

    | ASCII | Dez. | Oct. | Hex. |
    | o | 111 | 157 | 6F |

    Geben Sie einen Zahl ein:
    | ASCII | Dez. | Oct. | Hex. |
    |
    | 10 | 12 | A |
    error
    Press any key to continue

    ich habe nun 2 mal "o" eingegeben. dass es 4 mal kommt, entspricht ja auch meiner schleife. aber er ich gebe o ein und er liefert mir die erste zeiel korrekt, und fügt dann einfach eine zweite eingabe, obwohl ich ja nichts eingebe
    ein. dann kann ich wieder was eingeben und er macht wieder 2 eingaben draus.
    wißt ihr, was ich meine?
    vielen dank
    gruß



  • Da ist nach dem ersten scanf() noch ein '\n' (=10) im Lesepuffer - schau mal in der FAQ nach, wie man das am günstigsten los wird 😉


Anmelden zum Antworten