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 continueich 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
