Contente
- Passos
- Método 1 de 2: técnica For-loop
- Método 2 de 2: A técnica "sleep ()"
- Código de amostra
- Pontas
- Avisos
Você já quis criar um programa C que espera por um determinado período de tempo? Você pode personalizar a forma de dar o tempo "voar", por exemplo: ao mostrar uma página pop-up (notificação ou dica) do jogo. ... OK, aqui estão algumas maneiras de criar um programa "ficar parado", continue a ler ...
Passos
- 1 Deixe seu processador funcionar por um tempo sem causar um evento observável.
- 2 Não execute nenhuma outra operação durante este atraso para criar um atraso de tempo simples.
Método 1 de 2: técnica For-loop
- 1 Use um típico loop "for" seguido por uma instrução vazia para implementar um atraso.
- 2 Escreva o seguinte, por exemplo:
- para (i = 1; i100; i ++);
- O operador que segue o ";" força o computador a fazer um loop 100 vezes sem um evento perceptível. Isso apenas cria um atraso de tempo.
Método 2 de 2: A técnica "sleep ()"
- 1 Use sleep (). A função é chamada sleep (int ms), declarada em TIME.H>, o que faz o programa esperar por um período de tempo especificado em milissegundos.
- 2 Inclua a seguinte linha em seu programa antes de int main ():
- #include TIME.H>
- 3 Cole onde for necessário para atrasar o programa:
- sono (1000);
- Altere "1000" para o número de milissegundos que deseja esperar (por exemplo, se quiser fazer um atraso de 2 segundos, substitua-o por "2000".
- Dica: Em alguns sistemas, o valor pode ser especificado em segundos em vez de milissegundos. Portanto, às vezes 1000 não é 1 segundo, mas na verdade 1000 segundos.
Código de amostra
Um programa que espera um certo número de segundos:
#include stdio.h> #include dos.h> int main () {int del; // O período de atraso printf ("Insira o tempo de atraso (em segundos):"); scanf ("% i" ,? del); del * = 1000; // Multiplique por 1000 para converter em milissegundos Delay (del); // Atraso. printf ("Concluído."); return 0; }
Um programa com contagem regressiva de 10 a 0:
#include STDIO.H> #include TIME.H> int main () {int i; para (i = 10; i> = 0; i--) {printf ("% i n", i); // Escreva o número atual de 'contagem regressiva' Delay (1000); // Espere um segundo} return 0; }
Pontas
- Um milissegundo é 1/1000 de um segundo.
- O algoritmo acima pode ser implementado usando qualquer estrutura de loop seguida pelo operador nulo - "; como usando loops while ou do-while.
Avisos
- Esse método geralmente é inútil para qualquer coisa que não seja um programa trivial. Em geral, use cronômetros ou uma abordagem orientada a eventos para fazer isso. Caso contrário, o programa deixará de responder durante o tempo de atraso e isso nem sempre é bom. Além disso, escolher N em um loop, se depender da execução de comandos, pode ter resultados inesperados. Aparentemente, o autor original nunca ouviu falar de um compilador de otimização ... ele pode otimizar um loop inteiro se não fizer nada!
- Observe que, ao usar o método "for-loop", pode levar um intervalo muito grande para i, uma vez que uma instrução vazia é muito rápida. Esses números grandes podem não caber em um tipo inteiro.
- Se você usar um loop for, o compilador pode otimizar o código e, como o loop não faz nada, remova-o. Isso não acontece ao usar Delay ().