Jump to content

Fechar ao pressionar uma tecla especifica


Go to solution Solved by pikax,

Recommended Posts

Posted
 do{
          printf("*========================*\n");
          printf("| M - Maculino           |\n");
          printf("| F - Feminino           |\n");
          printf("| E - Encerrar Programa  |\n");
          printf("*========================*\n");
          fflush(stdin);
          scanf("%c", &sexo);
          fflush(stdin);
          switch(sexo)
             {
                    case 'M':
                    case 'm':
                         masc++;
                         break;
                    case 'F':
                    case 'f':
                         fem++;
                         break;
                    case 'E':
                    case 'e':
                        system("close");
                        break;
                    default:
                            printf("Erro!");
              }

pessoal e o seguinte eu queria fazer o progrma fechar qndo o usuario digita-se a letra 'E', mas nao to conseguindo... agradeço pela ajuda..

Posted

Puseste exactamente como indiquei ou puseste 'return = 0' ? O 'return' provoca a saída da função que o contiver. Presumo que o ciclo que mostras esteja dentro da função 'main', logo saíndo da 'main' o programa termina. Se não está o teu código está mal estruturado. De qualquer maneira coloca aqui o código da função que inclui este ciclo 'do'.

Posted
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>

main(void)
{
          char sexo, resposta, continuar;
          int totalentre = 0, totals = 0, totaln = 0, mgp = 0, mngp = 0, homens = 0, homensn = 0, num, masc = 0, fem = 0;
          system("color 3f");
          system ("title Isaias Darci Dieterich");
          printf("*========================*\n");
          printf("| Pesquisa de Satisfacao |\n");
          printf("*========================*\n");
           
          do{
          printf("*========================*\n");
          printf("| M - Maculino           |\n");
          printf("| F - Feminino           |\n");
          printf("| E - Encerrar Programa  |\n");
          printf("*========================*\n");
          printf("  Selecione o Sexo: ");
          scanf("%c", &sexo);
          fflush(stdin);
          
          switch(sexo)
             {
                    case 'M':
                    case 'm':
                         masc++;
                         break;
                    case 'F':
                    case 'f':
                         fem++;
                         break;
                    case 'E':
                    case 'e':
                         exit(0); // função que força o programa a encerrar quando o usuario teclar e Letra 'E'ou 'e'.
                         break;
                        
                    default:
                            printf("Erro!");
              }
              
          printf("*========================*\n");
          printf("| S - Sim                |\n");
          printf("| N - Não                |\n");
          printf("*========================*\n");
          printf("  Gostou do Produto:  ");
          scanf("%c", &resposta);
          fflush(stdin);
             
              switch(resposta)
              {
                     case 'S':
                     case 's':
                          totals++;
                          break;
                     case 'N':
                     case 'n':
                          totaln++;
                          break;
                     default:
                             printf("Valor Invalido!");
              }
          printf("*========================*\n");
          printf("| Pesquisa Concluida     |\n");    
          printf("*========================*\n");
          printf("| E - Encerrar           |\n");
          printf("| C - Nova Entrevista    |\n");
          printf("*========================*\n");
          scanf("%c", &continuar);
          fflush(stdin);
          system("cls");
          }while(continuar == 'c');
          printf("\nTotal de Pessoas que nao gostaram do Produto: %d", masc);
          system("pause");
}

se eu tirar o fflush(stdin), não consigo fazer a leitura da proxima pergunta... ai está todo o código que eu tnho at agora... ainda falta termina-lo...

Pessoal consegui resolver o problema... coloquei a função exit(); que faz exatamente o que eu queria...

  • Solution
Posted

Penso que o fflush(stdin) nao se deve usar muito. O programa salta a proxima pergunta porque o '\n' fica no buffer e quando pedes outro char, ele poe o valor do \n, basta meteres um espaco antes do "%c":

scanf(" %c", &resposta);

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

Penso que o fflush(stdin) nao se deve usar muito. O programa salta a proxima pergunta porque o '\n' fica no buffer e quando pedes outro char, ele poe o valor do \n, basta meteres um espaco antes do "%c":

scanf(" %c", &resposta);

Pohh.. essa eu não sabia.... Valeu pela Dica...  😉

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.