Carlos7 1 Denunciar mensagem Publicado 11 de Dezembro de 2012 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 1185 Denunciar mensagem Publicado 11 de Dezembro de 2012 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 Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Carlos7 1 Denunciar mensagem Publicado 11 de Dezembro de 2012 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 610 Denunciar mensagem Publicado 11 de Dezembro de 2012 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! Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
Carlos7 1 Denunciar mensagem Publicado 11 de Dezembro de 2012 Sendo assim muito obrigado pelas dúvidas que me tiraram Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites