Jump to content
Sign in to follow this  
demyz0r

Salta

Recommended Posts

demyz0r

Boas pessoal tenho aqui um problema, o programa deveria dizer ao utilizador para meter o seu nome proprio, so que aparece o printf, e nao deixa inserir o nome e passa logo para as horas.

Alguem me podia ajudar?

int h_entrada, m_entrada, s_entrada,etotal_horas,hora_ent,minutos_ent,segundos_ent;
      char op;
      char nome [50];

    do
    {
         system("cls");
         printf("\n\t\t\t\t  **ENTRADA DE VIATURAS**\n");
         printf("\n\t\t\t\t1 - Externos");
         printf("\n\n\t\t\t\t2 - Funcionarios");
         printf("\n\n\t\t\t\t3 - voltar ao menu principal\n");
         printf("\n\t\t\t\tSelecione a Opcao: ");
         fflush (stdin);
         scanf("%c", &op);

         switch (op)
         {
            case '1':
              system("cls");
              printf("\n\t\t\t------------------------\n");
              printf("\n\t\t\t\tExternos\n");
              printf("\n\t\t\t-------------------------\n\n\n");
              printf("\n\t\t\tEscolheu a opcao %c\n",op);

              //Saber os dados
              printf("\n--Insira o nome proprio--\n");
              scanf("%c",&nome[0]);
              printf("\n--Insira hora de entrada--\n");
              printf("hora: ");
              scanf("%d",&hor[1]);
              printf("minutos: ");
              scanf("%d",&hor[2]);
              printf("segundos: ");
              scanf("%d",&hor[3]);
              hora_ent=h_entrada*3600;
              minutos_ent=m_entrada*60;
              printf("Total de horas: ");
              //scanf("%d",&etotal_horas);
              
             //Fazer Entrar viaturas
             if (lug_liv[iNDEX_EXTERNO] > 0)
              {
                 lug_liv[iNDEX_EXTERNO]--;
                 printf ("\n\t\t\tEntrada com sucesso!\n");
                 printf ("\t\t\tFoi para o %d lugar!\n", MAXE-lug_liv[iNDEX_EXTERNO]);
              }
              else
              {
                 printf("\n\t\t\tParque esgotado!");
              }

              getch();
              break;

asddv.png

Share this post


Link to post
Share on other sites
demyz0r

Eu fiz como manda e não está a dar na mesma, em vez de "&c" meti scanf("%*c",&nome[0]); ainda está errado?!

Share this post


Link to post
Share on other sites
Baderous

Se o caracter vai ser descartado com o %*c, o &nome[0] não está lá a fazer nada porque não vai ser nada lá guardado, podes apagar isso (que é tal como estava no exemplo...).

Share this post


Link to post
Share on other sites
demyz0r

printf("\n--Insira o nome proprio--\n");
              scanf("%[^\n]", nome [0]);
/* Limpar o buffer */
              scanf("%*[^\n]"); scanf("%*c");

meti isso e continua a nao dar :\

Share this post


Link to post
Share on other sites
Baderous

Não dá porque estás a tentar ler uma string para uma variável que é um caracter. A string que declaraste chama-se "nome" e tem capacidade para 50 caracteres.

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

×
×
  • 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.