• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

SPJM

Problema no menu

4 mensagens neste tópico

Boas, quando ponho este código a correr ele funciona bem até chegar ao menu disciplinas. Ou seja para depois escolher qualquer uma das 3 opções é necessário carregar 2 vezes no numero correspondente, Alguma solução? Bgd

int main (void)

{
   int op, opsubr, opsubd;

   do {
      op = menu ();
      switch (op) {
      case 1:
         clrscr();
      menualunos();
         break;
      case 2:
         clrscr();
         menudisciplinas();
    do {   
            opsubd = menudisciplinas();
            switch (opsubd) {
            case 1:
               clrscr();
       ledisc ();
               break;
            case 2:
               clrscr();   
               break;
            case 3:
               clrscr();
               break;
            }
         break;         
      case 3:
         clrscr();
         menutestes();
         break;
      }
    while (op != 5);
   return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também precisava de saber. Tenho uma dúvida parecida :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Penso que podes resolver isso limpando o buffer de entrada, após teres guardado o 1º número.

scanf("%*[^\n]"); scanf("%*c");

PS: Não testei.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A forma do baderous parece ser a mais indicada, mas também podes ler um char e enviar para uma variável inutil.

Lês o primeiro numero que envias para uma variavel 'lixo' e o segundo numero será o que te interessa.

Desta forma, o buffer do teclado será resolvido.

0

Partilhar esta mensagem


Link 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