

C - nejde načíst znak
Dělám jeden program do školy a potřebuju načíst nak z klávesnice ale pokaždé když program dojde do fáze kdy má načíst znak tak to přeskočí a pokračuje za načítáním, prostě nic nenačte. Zkoušel jsem to pomocí funkce getchar() i pomocí scnaf("%c", &x). Fakticky nevím co s tím, a nestalo se mi to porvé. Jestli někdo víte jak ten problém vyřešit, prosím poraďte.
Dělám v Code::Blocks ale to samé mi to děla i v Dev-C++.
A jak jsem právě zjistil, v tom samem IDE jsem si jen na zkoušku udělal jednoduchy programek ktery jenom nacte a vzpise znak a ono to najednou funguje. Ja uz tomu fakt nerozumim. Prvni se vykaslu na Turbo C++ protoze nedodržuje normu C99, tudíž nefunguje deklarace proměnných jinde než na začátku a u Code::Blocks zase tohle, jsem fakt zvedavy jak ten program dodelam.
jestli to pomuže, tohle ja zadani prikladu:
vim ze je to lehke, taky myslim ze vim jak na to ale jestli se nemylim tak potrebuju nacist ty znaky.
Když už kombinuješ scanf a getchar, tak za scanf musí být fflush(stdin); protože scanf si "pamatuje stisknutý enter" a skočí ti to hned dál (formulace není přesná, jsem jen mírně pokročilý začátečník, ale tak nějak to je). A jinak doporučuji ze začátku dělat v Codelite.
grrr ... zas ma niekto predbehol![]:)](https://static.poradna.net/images/smiley/evilsmile.gif)
skus dat pred to tvoje getchar prikaz: fflush (stdin);
tak jsem to tam ale, ale je to takove divne, nekdy to jde, nekdy to nejde, proste ten program nedela co chci :(
tady je kod toho programu, zkuste kdyztak podivat kde mam chybu pls
ad 1) namiesto tych mastnych if-ov pouzi case
ad 2) skus ten fflush dat pred kazdy scanf.
Možná místo fflush by mělo stačit zapsat scanf(" %c",&znak); tedy přidat mezeru před znak charu.
Načítáš znak do proměnné op, kterou máš ale definovanou jako int.
Jsem sice programátor začátečník ale naučil jsem se ukladat znaky do int podle jedne knihy, učili nas to i ve skole, a taky to funguje.
Jakou hodnotu asi pak má ta proměnná? Znak "+" to není
Sice to není dokonalé, ale trochu to funguje
. Vytvořeno v Visual Studio 2010.
díky, ale nebylo to nutné, už mi to funguje. A funguje to i s INT. Znak se do proměnné ukládá pod jeho číselnou hodnotou v ASCII tabulce, takže je uplně jedno jestli použiju INT nebo CHAR.