Jump to content
Sign in to follow this  
Cronometro

[Resolvido] Utilização de _kbhit() e getchar() num loop

Recommended Posts

Cronometro

Boas.

Tenho de fazer um programa que quando cliquemos no '+' atribue +1 a uma variável e quando cliquemos no '$' o programa pare e nos diga quantos cliques no + é que houve e quantos ciclos é que ocorreram durante a sua execução.

Código Até agora feito:

Código

#include <stdio.h>

#include <conio.h>

int input;

int tempo, tempmil;

int passagens;

int controlo;

int c;

int main()

{

while(controlo==0)

{

tempo++;

if(tempo%1000==0)

tempmil++;

c = _getche();

if( c == '+')

passagens++;

else

if( c == '$')

controlo=1;

}

printf("\nNumero de Passagens: %d", passagens);

printf("\nTempo a funcionar: %d\n\n", tempmil);

return 0;

}

/////////

Problema: não está a calcular o tempo.

Gostava que me podessem ajudar no assunto.

Desde já obrigado.

Cumprimentos.

PS: O Professor recomendou a utilização de _kbhit() e getchar(). Mas não sei como aplicar ambas no ciclo.


Software is like sex: It’s better when it’s free.

Share this post


Link to post
Share on other sites
Cronometro

Problema Resolvido

Código

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

int STempo, MSTempo;

int TempoT;

int c;

int passagens;

int main()

{

  while(1)                          // Ciclo Principal.

  {

      while( !_kbhit() )                  // Ciclo que cálcula o tempo entre as passagens.

      {

        STempo++;

        if(STempo%1000==0)

            MSTempo++;

      }

      TempoT+=STempo/1000;              // Tempo total da execução do programa.

// Introdução de caracteres

      fflush(stdin);                    // Limpar o buffer.

      c = _getche();                    // Indicar que a variável "c" é igual ao proximo carácter introduzido.

// Verificação do "c"

      if( c == '+' )                    // Quando a variável "c" é "+" a variável passagens aumenta em 1.

        passagens++;

      if( c == '$' )                    // Quando a variável "c" é "$" o ciclo acaba.

        break;

  }

// outputs

  printf("\n\n\tNumero de Passagens: %d\n", passagens );

  printf("\n\tO Maior tempo sem passar carros: %d\n", MSTempo );

  printf("\n\tTempo total de execuccao: %d\n\n\n\n", TempoT);

  return 0;

}


Software is like sex: It’s better when it’s free.

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.