Program wariuje po wprowadzeniu jednej funkcji

0
void ZAKONCZENIE()
{
    char wybor;
	POCZATEK_FUNKCJI:
		printf("\nCzy chcesz wrocic do MENU wyboru?\n");
		printf("Wpisz litere T (TAK) lub N (NIE) by kontynuowac\n");
    	scanf("%c", &wybor);
	if (wybor == 'T' || wybor == 't') {
    	printf("\n\n");
    	MENU();
    }
    else if (wybor == 'N' || wybor == 'n') {
        exit(0);
    }
    else
        printf("Wpisales/as nieprawidlowy znak. \n");
        goto POCZATEK_FUNKCJI;
}

Zrobiłem taką oto krótką funkcje która ma służyć do tego co w sumie widać. Jednak przy jej użyciu program jakby od razu sczytuje wpisana literę mimo ze nic nie zostało wpisane przez co się wszystko psuje. Dlaczego tak jest i jak to naprawić?

1
  1. goto? Nie umiesz for(;;) użyć?
  2. Spacja w złym miejscu: scanf(" %c",&wybor);
0

Mógłbyś rozwinąć się jeżeli chodzi for(;;)? Jestem początkującym "programistą" i właśnie nie wiem jak zrobić by funkcja wracała na swój początek.

0

Jestem zaskoczony tym że ta jedna spacja popsuła mi cały program. Nie rozumiem tylko co za różnica, gdy jest tak

scanf(" %c",&wybor);

a gdy jest tak scanf("%c", &wybor);

?
0

Czytasz dokumentacje i rozumiesz.
Tu taki uniwersalny przykład: http://4programmers.net/Forum/1100492

0
_13th_Dragon napisał(a):

Czytasz dokumentacje i rozumiesz.
Tu taki uniwersalny przykład: http://4programmers.net/Forum/1100492

Póki co na studiach mam C# ale na pewno kiedyś się przyda.

Dziękuje Wam bardzo za pomoc ;]

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