Ir ao conteúdo
  • Cadastre-se

Função se executando 2 vezes


Sioto

Posts recomendados

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
}
}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...