switch i case a wprowadzanie danych z klawiatury

0

Mam problem z połączeniem dwóch funkcji w programie. Chcę wprowadzić kod, który w programie umożliwi mi wybranie jednej z kilku możliwości, a po jej wybraniu, od razu będę mógł wprowadzić dane z klawiatury. Nie wiem czy kopiować cały program, czy może wystarczy ta część, z którą mam problem:

printf("Wybierz okres na jaki oddana zostala kwota pieniedzy: \n");
	printf("1. Dni. \n");
	printf("2. Lata. \n");

	scanf("%d", &wybor);
		switch (wybor) {
		case 1: printf("Wprowadz ilosc dni. \n");
			fgets(line, sizeof(line), stdin);
			sscanf(line, "%d", &okres);
		break;
		case 2: printf("Wprowadz ilosc lat: \n");
			fgets(line, sizeof(line), stdin);
			sscanf(line, "%d", &okres);
		break;
		default: printf("Nieprawidlowy wybor!\n");

Najpierw wybieram opcję, załóżmy nr 1 i potem chciałbym móc zaraz po wybraniu tej opcji wprowadzić dane z klawiatury. Powyższy sposób niestety nie działa. Pojawiają mi się opcje do wyboru i po wybraniu, którejś z nich wyświetla mi się tylko napis "Wprowadz ilosc dni/lat" i program kończy działanie.

Aha i jeszcze jak wkręcić wybraną opcję np.: do funkcji if. Mam na myśli coś takiego: if opcja 1 printf coś tam. if opcja 2 printf coś innego.

0

Bardzo bym prosił o pomoc i odpowiedź.

0
printf("Wybierz okres na jaki oddana zostala kwota pieniedzy: \n");
        printf("1. Dni. \n");
        printf("2. Lata. \n");
 
        scanf("%d", &wybor);
                switch (wybor) {
                case 1: {printf("Wprowadz ilosc dni. \n");
                        fgets(line, sizeof(line), stdin);
                        sscanf(line, "%d", &okres);}
                break;
                case 2: {printf("Wprowadz ilosc lat: \n");
                        fgets(line, sizeof(line), stdin);
                        sscanf(line, "%d", &okres);}
                break;
                default: printf("Nieprawidlowy wybor!\n");

Nie dam glowy uciac, ale powinno dzialac.

0
  1. while(getchar()!='\n'){} po: scanf("%d",&wybor); rozwiąże sprawę
  2. czy nie prościej zamiast
fgets(line, sizeof(line), stdin);
                        sscanf(line, "%d", &okres);

dać zwyczajnie:scanf("%d",&okres);

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