» Poradna » Programy

Programování v jazyku C, getchar

 |   |  Microsoft Windows 10 Chrome 62.0.3202.94

Nazdar lidi, potebuji pomoct, proč mi to nefunguje tak jak má.Je to velice primitivní a něco mi uniká, někde dělám chybičku, proč když tam zadám číslo 10, 12,15, tak to neskočí do defaultu? Dělám to ve Visualu 17. cpp a DO knihovny přidám crt secure no warnings.https://imgur.com/a/PmVNq - zdrojhttps://imgur.com/GcVw3Am - program#include "stdafx.h"char volba_menu(){ char v; v = getchar(); getchar(); return v;}int main(){ char volba; do { volba = volba_menu(); switch (volba) { case '1': printf("Ahoj\n"); break; case '2': printf("case 2, čau\n"); break; case 'K': printf("nashledanou\n"); break; default: printf("neplatna volba v menu\n"); } } while (!(volba == 'K')); return 0;}Výsledek:1Ahoj2case 2, Ŕau10Ahoj12neplatna volba v menucase 2, Ŕau13Ahoj15neplatna volba v menuneplatna volba v menu10Ahoj8neplatna volba v menu10neplatna volba v menuneplatna volba v menu12Ahoj----1Ahoj10Ahoj100neplatna volba v menuneplatna volba v menu110neplatna volba v menuAhoj20neplatna volba v menuneplatna volba v menu2case Ukázat celý příspěvek

Mohlo by vás také zajímat

Odpovědi na otázku

 |   |  Microsoft Windows 7 Chrome 62.0.3202.94

Protoze pri zadani 10v = getchar();ti nacte znak treba tu 1a dalsi radek getchar() nacte tu 0 ale nikam neulozi a vysledek funkce volba_menu() je jenom 1 getchar() ulozi jenom jeden znak z klavesnice.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Chrome 63.0.3239.84

tvoj vstup: 1<CR>2<CR>10<Cr>12<Cr>13<Cr>15<CR>logika tvojho programu deli stream na dvojice: 1<CR> 2<CR> 10 <Cr>1 2<Cr> 13 <Cr>1 5<CR>kde druhy prvok zahadzujes, takze do volby sa dostanu 1 2 1 <Cr> 2 1 <Cr> 5co odpoveda tomu co si dostal

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Menu, Case, Break, Char