2010-11-12 41 views

Répondre

14

Utilisez boost::this_thread::sleep

// sleep for 5 seconds 
boost::this_thread::sleep(boost::posix_time::seconds(5)); 
+0

Bien que, bien sûr, booster peut ne pas être une option pour cette personne. – Omnifarious

+0

+1. J'ai sorti les mots de mes doigts. –

+7

@Omnifarious: C'est possible. Mais à moins que le PO n'en dispose autrement, je ne vois aucune raison de supposer que le boost n'est pas une option. Chaque développeur C++ devrait avoir un boost installé, si possible. –

1

Je ne connais aucune fonction portable, mais les systèmes d'exploitation grand public ont usleep pour * nix et Sleep pour Windows.

+3

boost est 'portable' pour de nombreuses définitions de portable. – Omnifarious

5

Le code suivant dormira pendant 10 millisecondes.

boost::this_thread::sleep(boost::posix_time::milliseconds(10))

Se reporter à boost::posix_time::time_duration pour plus de façons de construire la durée.

0

S'il vous plaît noter que le code ci-dessus a été testé sur Code :: Blocks 12,11 et Visual Studio 2012
sur Windows 7.

Pour forcer votre arrêt du programme ou attendez, vous avez plusieurs options:


  • sommeil (unsigned int)

La valeur doit être un nombre entier positif en millisecondes. Cela signifie que si vous voulez que votre attente de programme pendant 2 secondes, entrez 2000.

Voici un exemple:

#include <iostream>  //for using cout 
#include <stdlib.h>  //for using the function sleep 

using namespace std; //for using cout 

int main(void)   
{ 
    cout << "test" << endl; 
    sleep(5000);   //make the programme waiting for 5 secondes 
    cout << "test" << endl; 
    sleep(2000);   // wait for 2 secondes before closing 

    return 0; 
} 

Si vous attendez trop longtemps, cela signifie probablement le paramètre est en deuxième position. Donc changer comme ça:

sleep(5); 

Pour ceux qui obtiennent un message d'erreur ou d'un problème à l'aide essayer le sommeil de le remplacer par _sleep ou sommeil en particulier sur le Code :: Bloks.
Et si vous rencontrez toujours des problèmes, essayez d'ajouter un de cette bibliothèque sur le biggining du code.

#include <stdio.h> 
#include <time.h> 
#include <unistd.h> 
#include <dos.h> 
#include <windows.h> 

  • système ("PAUSE")

Un programme simple "Bonjour tout le monde" sur les fenêtres application console serait probablement proche avant de pouvoir voir quoi que ce soit. C'est le cas où vous pouvez utiliser le système ("Pause").

#include <iostream>  

using namespace std; 

int main(void)   
{ 
    cout << "Hello world!" << endl; 

    system("PAUSE"); 

    return 0; 
} 

Si vous obtenez le message "erreur: 'système' n'a pas été déclaré dans ce champ" juste ajouter la ligne suivante au biggining du code:

#include <cstdlib> 

  • cin.ignorer()

Le même résultat peut être atteint en utilisant cin.ignore():

#include <iostream>  

using namespace std;  

int main(void)   
{ 
    cout << "Hello world!" << endl; 

    cin.ignore(); 

    return 0; 
} 

  • cin.get()

exemple :

#include <iostream>  

using namespace std;  

int main(void)   
{ 
    cout << "Hello world!" << endl; 

    cin.get(); 

    return 0; 
} 

  • getch()

Il suffit de ne pas oublier d'ajouter la bibliothèque conio.h:

#include <iostream>  
#include <conio.h> //for using the function getch() 

using namespace std;  

int main(void) 
{ 

    cout << "Hello world!" << endl; 

    getch(); 

    return 0; 
} 

Vous pouvez avoir un message vous indiquant d'utiliser _getch () insted of getch