Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Carlos7

[Resolvido] Duvida sobre codigo

Mensagens Recomendadas

Carlos7

Boas, pessoal tenho um menu e tenho o codigo do menu desta forma:

do {
    printf("0 - Exit\n");
    printf("1 - Menu Student\n");
    printf("2 - Menu Instructor\n");
    printf("3 - Menu 3\n");
    printf("4 - Menu 4\nOption:\n");
    while (!scanf("%u", &option) || option < 0 || option > 4 || getchar() != '\n') {  //perceber
	    while (getchar() != '\n'); //perceber
	    printf("Invalid Option!\nOption:\n");
    }

//Switch case das opcoes
//......
}

Não consigo perceber a parte que coloquei no comentario...

Funciona correctamente mas nao estou a perceber o que fazem aquelas linhas, alguém pode ajudar?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo


while (                      // enquando
   !scanf("%u", &option) || // não ter lido um valor numérico
   option < 0 ||            // o valor numérico lido for inferior a 0
   option > 4 ||            // o valor numérico for superior a 4
   getchar() != '\n')       // o caracter seguinte ao lido for diferente de fim de linha
{
 while (getchar() != '\n'); // limpar o buffer de leitura
 printf("Invalid Option!\nOption:\n");
}


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Carlos7

Ja tinha mais ou menos a ideia mas agora ja percebi a 100%. Outra duvida e se está correcto utilizar isto desta forma para que ao serem introduzas letras ou numeros invalidos ele não dê erro mas sim volte a pedir a opção?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Outra duvida e se está correcto utilizar isto desta forma para que ao serem introduzas letras ou numeros invalidos ele não dê erro mas sim volte a pedir a opção?

Sim, claro. Repara bem, o ciclo só termina quando o utilizador inserir uma opção que seja válida.


Knowledge is free! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.