IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Načítání znaku

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
David Švec
Člen
Avatar
David Švec:26.1.2018 15:39

Zdravím,
mám takovou blbou otázku.. :) ..Proč když načítám znak na konci programu, tak tam musím dát dvakrát scanf?
Když to tam mám pouze jednou, tak to nefunguje. Předem děkuji za rady.
Přikládám kód. :)

#include <stdio.h>
#include <stdlib.h>
#define PI 3.14159265


/*
 *
 */
int main(int argc, char** argv) {
    double r;
    char pokracovat;
    do
    {
        printf("Zadej poloměr kružnice/kruhu (cm): ");
        scanf("%lf", &r);
        if (r <= 0)
        {
            printf("Haha.. jsem chytřejší než ty :), PS: poloměr nemůže být záporný nebo roven nule.");
        }
        else
        {
            printf("Obvod kružnice s poloměrem %g cm : %g cm\n", r, 2 * r * PI);
            printf("Obsah kruhu s poloměrem %g cm : %g cm^2", r, PI * r * r);
        }
        printf("\nDalší příklad? [A/N]");
        scanf("%c", &pokracovat); //Tohle je ta část
        scanf("%c", &pokracovat);
    } while (pokracovat == 'A');
    return (EXIT_SUCCESS);
}
 
Odpovědět
26.1.2018 15:39
Avatar
Odpovídá na David Švec
Matúš Olejník:26.1.2018 16:00

Je to kvôli tomu že ak zadáš znak a potom stlačíš enter tak scanf načíta ten enter a teda podmienka neplatí zmeň to na

scanf(" %c", &pokracovat)
Editováno 26.1.2018 16:00
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
26.1.2018 16:00
/* I am not sure why this works but it fixes the problem */
Avatar
David Švec
Člen
Avatar
Odpovídá na Matúš Olejník
David Švec:26.1.2018 16:08

Aha, už to funguje. Děkuji moc. :)

 
Nahoru Odpovědět
26.1.2018 16:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.