Jump to content
Carlos7

[Resolvido] Duvida sobre codigo

Recommended Posts

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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.