Új hozzászólás Aktív témák
-
Rickazoid
addikt
Írnék egy C programot, de van egy hiba, aminek nem találom az okát már vagy másfél órája.
Itt a forrás (egyelőre csak egy példa, úgymond vázlat program, erre épülne majd egy jóval bonyolultabb):...
int b=1;
char c;
...
while(b==1)
{
c=getchar();
switch(c)
{
case '1':
{
i=1;
printf("The number is %i\n",i);
b=0;
break;
}
case '2':
{
i=2;
printf("The number is %i\n",i);
b=0;
break;
}
case '3':
{
i=3;
printf("The number is %i\n",i);
b=0;
break;
}
case '4':
{
i=4;
printf("The number is %i\n",i);
b=0;
break;
}
default:
{
printf("That is not a menu option, please try again: ");
b=1;
break;
}
}
}A problémám az lenne, hogy a default parancsai duplán hajtódnak végre. Mindig duplán írja ki a "That is not a menu option, please try again: " szöveget. Megpróbáltam írni a getchar() elé és mögé egy szöveget printf-fel, de a defaultra azokat is duplán írta ki, jól láthatóan egyszer átugrotta a getchar()-t. Próbáltam kivenni a ciklusból a ciklus elé és újra betenni a defaulthoz, de úgy is szimplán átugrotta egyszer. Nem értem, de nagyon nem. Próbáltam getchar() helyett scanf()-et is, de azt is átugorja egyszer, így annál is dupla lesz a default végrehajtódása. Mitől lehet ez?
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- BESZÁMÍTÁS! ASRock A520M R5 5500 16GB DDR4 512GB SSD RTX 2060 6GB CM Masterbox MB311L ARGB 500W
- Asus Prime X670E-Pro Wifi AM5 alaplap
- 27% - Corsair Elgato Stream Deck Mini
- Apple iPhone 14 128GB,Újszerű,Adatkabel,12 hónap garanciával
- Innosick, Samsung Laptop memória DDR5 5600Mhz // ÚJ // Számla // Garancia //
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
