Problem char, switch case

Odpowiedz Nowy wątek
2017-11-14 18:17
Szalony Ogrodnik
0

#include <stdio.h>
int main()
{
int opcja;
char a;
printf("Wybierz opcje:\n 1-Szyfrowanie\n");
scanf("%d",&opcja);
switch(opcja)
{
case 1:
printf("podaj litere ktora chcesz wypisac\n");
scanf("%c",&a);
printf("%c\n",a);
break;
default:
printf("Zły wybór");
break;
}

return 0;
}

Nie wiem dlaczego, ale po scanfie Od razu sie zamyka, chcialem podac a, jeżeli jest char. A jak podałem int i zamiast a podalem 5 wszystko działa. Kompiluje w xcode.

Pozostało 580 znaków

2017-11-14 18:20
Szalony Ogrodnik
0
#include <stdio.h>
int main()
{
    int opcja;
    char a;
    printf("Wybierz opcje:\n 1-Szyfrowanie\n");
    scanf("%d",&opcja);
    switch(opcja)
    {
        case 1:
            printf("podaj litere ktora chcesz wypisac\n");
            scanf("%c",&a);
            printf("%c\n",a);
            break;
        default:
            printf("Zły wybór");
            break;
    }
 
    return 0;
    }

Pozostało 580 znaków

2017-11-14 18:52
0

Problem bierze się stąd że po wprowadzeniu opcji bufor ma jeszcze znak nowej linii ale można go "zjeść" w scanf i nie przechowywać nigdzie używając takiej oto konstrukcji:

scanf("%d%*c", &opcja); // I tak samo musiałoby być dla pozostałych
// Jedyna zmianą jest %*c które mówi że należy "wziąć" 1 znak z bufora ale nie będzie on nigdzie przechowywany.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0