Trabalho de C

1 resposta
J

Estou fazendo meu trabalho final de programação da faculdade e um problema me tira o sono.
Quando eu executo esse main() ele faz tudo direitinho, mas quando eu termino uma das opções que é pra mostrar o menu de novo, o menu aparece duas vezes. Já tentei while, do while e esse for, maso menu aparece duas vezes. Alguém pode me dizer o que tá errado??

int main() {

	Cliente c;
	char opcao = '0';

	rewind(stdin);
	for(;;){
		printf("\n\tDigite a opção desejada\n"
				"1. Inserir\t"
				"2. Listar\t"
				"3. Sair\n");
		scanf("%c", &opcao);
		switch(opcao){
			case '1':
				inserir();
				break;
			case '2':
				listar(c);
				break;
			case '3':
				exit(0);
		}
	}

}

1 Resposta

tsprates

Eu não programo muito em C, mas acho q colocando o fflush(stdin) depois do scanf("%c", &opcao); funcionaria, ja vi em alguns artigos na net q o fflush(stdin) não eh uma solução ideal, mas q acho q para o seu caso pararia de mostrar o menu duas vezes

//…

scanf("%c", &opcao);

fflush(stdin);

switch(opcao){

//…
Criado 14 de junho de 2011
Ultima resposta 14 de jun. de 2011
Respostas 1
Participantes 2