Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Sioto

[Resolvido] Função se executando 2 vezes

Recommended Posts

Bom, n sabia o que por no titulo, mais o que se segue é o seguinte, eu estou com uma função MENU e preciso que a pessoa digite só numeros , eu pensei que posso fazer um outro if e coisa e tal, mas queria saber o que há de errado nesse meu codigo. Ele executa uma vez normalmente, se eu aperto só enter ele repete como eu gostaria, porém se você digitar qualquer coisa e apertar enter, ele passa a rodar 2 vezes em vez de 1 só.


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int *m;
void menu (){
int iM; // inteiro de M
char M = 'a';
printf("\nEscolha uma das opções\n1-Ler Arquivo\n2-Ordenar Arquivos\n3-Fazer uma Busca\n4-Sair\n5-Repetir\n");
scanf("%c",&M); // Pega um caracter M qualquer
iM = M - '0'; // transforma M em Inteiro (ex char 5 = int 5)
if (isdigit(M)){ // se for um digito (1 2 3 4 5 6 7 8 9 0)
printf("\nA Opcao escolhida foi %i\n", iM) ;
}
m=&iM; // ponteiro para iM;
}
main (){
int M = 0;
while(M != 4){
menu();
M = *m; // resgata iM da função menu
if(M == 5)
system("cls"); // Limpa tela
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sioto,

Coloque um:

fflush(stdin);

logo após o scanf() para limpar o buffer de entrada.

[]'s

LNW

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Sioto,

Coloque um:

fflush(stdin);

logo após o scanf() para limpar o buffer de entrada.

[]'s

LNW

Funcionou perfeitamente, Muito Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×