Baixe em PDF Baixe em PDF

Você provavelmente já tentou ou precisou fazer um programa em C pausar por alguns instantes. As aplicações para isso são diversas, desde a página de boas-vindas de um jogo até uma caixa de alerta em um programa. Saiba que, de fato, existem algumas técnicas para implementar um timer em C. Quer aprender? Siga adiante.

Método 2
Método 2 de 2:

Usando a função sleep()

Baixe em PDF
  1. Ela pertence à biblioteca TIME.H e, conforme a sintaxe, faz com que o programa pause pela quantidade em milissegundos determinada pelo parâmetro – sleep(int ms).
    • #include <TIME.H>
    • sleep(1000);
    • Mude o “1000” pelo número de milissegundos que você deseja pausar o programa. Por exemplo, se quiser uma pausa de dois segundos, troque “1000” por “2000”.
    • Dica: em alguns sistemas, o parâmetro pode se referir a segundos. Nesse caso, mil equivaleria a mil segundos em vez de mil milissegundos.
    Publicidade

Analisando um código pronto

Este é um programa que pausará por uma determinada quantidade de segundos:

 #include 
 <stdio.h> 
  
 #include 
 <dos.h> 
  
 int 
 main 
 () 
 { 
 int 
 del 
 ; 
 // O tempo do delay 
 printf 
 ( 
 "Digite o tempo do delay em segundos: " 
 ); 
 scanf 
 ( 
 "%i" 
 , 
 & 
 del 
 ); 
 del 
 *= 
 1000 
 ; 
 // Multiplica por 1000 para converter em milissegundos 
 delay 
 ( 
 del 
 ); 
 // Função delay 
 printf 
 ( 
 "Pronto!" 
 ); 
 return 
 0 
 ; 
 } 

Um contador decrescente de 10 a 0:

 #include 
 <stdio.h> 
  
 #include 
 <time.h> 
  
 int 
 main 
 () 
 { 
 int 
 i 
 ; 
 for 
 ( 
 i 
 = 
 10 
 ; 
 i 
 >= 
 0 
 ; 
 i 
 -- 
 ) 
 { 
 printf 
 ( 
 "%i 
 \n 
 " 
 , 
 i 
 ); 
 // Exibe a atual contagem do contador 
 delay 
 ( 
 1000 
 ); 
 // Espera um segundo 
 } 
 return 
 0 
 ; 
 } 

Dicas

  • A técnica do loop vazio com o for também vale para qualquer outro tipo de loop, tais quais o do-while e o while, basta acrescentar um “;” depois do loop.
  • Um milissegundo equivale 1/1000 de um segundo.
Publicidade

Avisos

  • A técnica do loop vazio só deve ser usada em programas simples, com a finalidade de estudo, já que o programa fica travado durante o delay. Em casos mais complexos, use programação orientada a eventos e funções de timer. Em resumo, o maior problema do loop vazio é impedir o usuário de interagir com o programa durante o loop – até mesmo a tecla “Sair” fica inativa. Em compiladores modernos (com otimizadores de código), o loop vazio é rapidamente removido do código.
  • Quanto maior o tempo de delay desejado, maior deve ser a diferença entre o primeiro e o segundo números do loop for, afinal um loop vazio é processado rapidamente.
  • Ao contrário do loop for, as funções de delay não são removidas pelos otimizadores de códigos.
Publicidade

Sobre este guia wikiHow

Esta página foi acessada 65 929 vezes.

Este artigo foi útil?

Publicidade