Leudassdf Posted February 11, 2014 at 02:03 PM Report #544839 Posted February 11, 2014 at 02:03 PM Boas pessoal, Eu tenho o seguinte código: char opcao; while(opcao<'1' || opcao>'5'){ scanf(" %c", &opcao); switch (opcao){ case '1': ;break; case '2': ;break; case '3': ;break; case '4': ;break; case '5':menu_Inicial();break; default:printf("A opcao %c e Invalida.Tente novamente.\nOpcao numero:",opcao); } } O problema é que se eu introduzir -1 ele dá o erro mas termina o programa. Porque é que isto acontece e como posso fazer com que ele continue a pedir um input correto ao utilizador? Cumprimentos Leandro
HappyHippyHippo Posted February 11, 2014 at 02:06 PM Report #544840 Posted February 11, 2014 at 02:06 PM quantos caracteres existem em "-1" ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Leudassdf Posted February 11, 2014 at 04:06 PM Author Report #544853 Posted February 11, 2014 at 04:06 PM quantos caracteres existem em "-1" ? existem 2 carateres. eu eprcebo que estou a ler apenas 1. Mas eu não quero é que o programa saia mesmo que o utilizador escreva 10 ou 20 caracteres. Eu tenho de o "obrigar" a introduzir uma opcao válida
HappyHippyHippo Posted February 11, 2014 at 04:18 PM Report #544855 Posted February 11, 2014 at 04:18 PM pensa bem no que está a acontecer. altera o código para o seguinte: char opcao; while(opcao<'1' || opcao>'5'){ scanf(" %c", &opcao); printf("Opção seleccionada : %c"\n, opcao); switch (opcao){ case '1': break; case '2': break; case '3': break; case '4': break; case '5': menu_Inicial(); break; default: printf("A opcao %c e Invalida.Tente novamente.\nOpcao numero:",opcao); break; } } vê lá se com isso chegas lá IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Leudassdf Posted February 12, 2014 at 11:15 AM Author Report #544998 Posted February 12, 2014 at 11:15 AM vê lá se com isso chegas lá Já percebi. O problema é o '\ n' que o scanf deixa no buffer certo? Eu depois fiz a limpeza e este problema ficou resolvido
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now