Création
d'entreprise
Posez votre question Signaler

Comment faire une pause en C++ [Résolu]

pom - Dernière réponse le 22 janv. 2011 à 19:52
Bonjour,
je voudrais faire une pause dans mon prgm. Je fais donc

int pause;
std::cin>>pause;

mais c'est lourd. N'y aurait-il pas une fonction pause() déjà faite (meme si cela ne me coute pas grand chose de me la faire...) ? Et faut-il charger une bibliothèque pour l'avoir ?

Enfin, que fait
#include<stdlib.h> ?
Je comprends que c'est la librairie standard, mais quelle est la différence avec
using namespace std; ?

Merci

pom
Lire la suite 

Comment faire une pause en C++ »

Suggestions
28 réponses
Réponse
+9
moins plus
system("pause"); ou l'équivalent de la commande DOS "pause" à la place et c'est bon!
a+
Ajouter un commentaire
Réponse
+4
moins plus
Sleep();
il est defini dans #include<windows.h>
Ajouter un commentaire
Réponse
+4
moins plus
Réflexes de programmeurs sous linux !!...

man getch

Utilisez le man ca vous évitera pas mal de pb ( s'utilise ss console unix )

et pour connaitre ttes les options du manuel ( man ) on fait :
man man

( c drole non ?? ;-) )

Bonne prog !!
@++ !!!
Ajouter un commentaire
Réponse
+2
moins plus
La fonction getch() placé dans un programme attends que l'utilisateur appuie sur une touche pour continuer.

Flipody
Ajouter un commentaire
Réponse
+1
moins plus
Salut Ravachol, oui j'ai bien passé un unsigned int en paramètre (mais je suis presque sur que le temps est compté en seconde et non milliseconde)

Canard007, je suis allé sur google pour me renseigner sur la fonction scanf que je ne connaissais pas. Ton truc marche si je fais

char c;
scanf("%s",c);

Je tape donc par exemple sur la touche "v" mais ensuite il enchaine tout, à l'itération suivante il zappe la pause.

Je vais continuer à lire les fonctions scanf, gets etc....

Merci encore de votre aide. J'ai bcp à apprendre encore !

Pom
Ajouter un commentaire
Réponse
+0
moins plus
re-Bonjour, merci de votre aide.

Pour David, mon compilateur ne reconnait pas #include<windows.h> (est-ce du au fait que je suis sous Linux ?)

Pour Flipody c'est sleep(10); (avec un s minuscule et non majuscule) et le temps est en seconde et non milliseconde.

Mais j'aimerais bien savoir s'il existe une fonction pause() qui continue le prgm tant que je n'ai pas tapé une sur une touche. Sinon je peux me la coder mais je suis sûr qu'il doit exister une telle fonction (car je ne pense pas etre le 1e à me poser cette question)

Merci encore de votre aide.

Pom
Ajouter un commentaire
Réponse
+0
moins plus
Re,
bon, je dois avoir un compilo assez bizarre car Ravachol j'ai bien essayé sleep(); mais il me dit

error: too few arguments to function `unsigned int sleep(unsigned int)'

(en revanche sleep(10); fonctionne mais je voudrais appuyer sur une touche pour continuer)

Enfin, Flipody, quand je fais getch(); j'obtiens :

Solide.cpp:350: error: `getch' undeclared (first use this function)
Solide.cpp:350: error: (Each undeclared identifier is reported only once for each function it appears in.)

Faut-il rajouter une bibliothèque ?

Merci encore une fois de votre patience

Pom
Ravachol- 18 juin 2004 à 16:58
Ton compilo est tout à fait normal, il faut bien passer un entier en paramètre de la fonction. Je n'ai pas pensé à le préciser, mais le message du compilo est clair ;-)

A++

La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
Ajouter un commentaire
Réponse
+0
moins plus
ba dans slepp fo passer un entier qui corespond au temps en ms
si tu veux attendre qu on appuis sur une touche fait un simple scanf ...
t attend qu on appui sur une touche puis stoo..
Ajouter un commentaire
Réponse
+0
moins plus
*l'équivalent unix/linux
Ajouter un commentaire
Réponse
+0
moins plus
Pourquoi tu te fais pas une methode maison pause()???

=}- The_Str@nger -{=
Ajouter un commentaire
Réponse
+0
moins plus
Salut! je cherche aussi l'equivalent de system("pause") mais sous linux!
Et aussi comment envoyer un signal d'un processus a un autre, c'est pour pouvoir le stopper en meme temps
merci a tous de me renseigner!!!!!!!
Abraxas - 20 juin 2004 à 22:04
getch(); c'est encore le plus simple je crois
il me semble que sous unix y'a des pipes je pense que ça sert à ça, mais si c'est juste pour dire qu'il faut arrêter, tu peux utiliser une variable globale volatile (booléen) que tu modifies dans un process et que tu verfifies dans l'autre
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
merci pour vos réponse. Mais pour getch(); le compilo me renvoie

Solide.cpp:351: error: `getch' undeclared (first use this function)
Solide.cpp:351: error: (Each undeclared identifier is reported only once for each function it appears in.)

Je voulais juste savoir si le c++ avait une fonction précodée pour faire une pause. Mais ce n'est pas bien grave, comme m'a dit drizzt40, une méthode maison est tout aussi bien.

Savez-vous ou je pourrais trouver une liste de toutes les fonctions précodées du c++ ?

Merci encore une fois
pomme
Ajouter un commentaire
Réponse
+0
moins plus
Pom
si il zap ta pause c'est que tu a du mettre un petit nombre je te garanti a 1000% que l entier à passer dans les parametre de Sleep est en millisecondes.. donc si tu fait un truc du style Sleep(10) c est klr que ca va passer vite...
getc est une fonction que tu trouvera dans string.h je crois...
rappel Sleep est dans windows.h

si t a vraiment un prob je te file un bout de code qui marche...
pom - 21 juin 2004 à 11:27
Bonjour Canard007, merci de ta patience.

Est-ce que tous les compilo sont identiques. Le mien est celui de Mandrake 9.2. Quand je fais #include<windows.h> j'obtiens :

Solide.cpp:13:20: windows.h: No such file or directory

Sinon j'ai bien mis mon #include<string.h> mais rien à faire, il ne connait pas la fonction getch();

Je veux bien voir ton code. Je suis curieux de comparer au mien car je pense avoir mis en pratique tout ce que vous m'avez répondu. Mais bon, l'essentiel est que ma "méthode maison" fonctionne (mais je n'aime pas rester sur une inconnue...)

Merci encore.
pom
Tuetuopay - 22 janv. 2011 à 19:52
pour getch(), le header est conio.h

#include <conio.h>
Ajouter un commentaire
Réponse
+0
moins plus
arf t es sous linux...
forcement windows.h ca va pas marcher...
fodrai chercher sur le net la library system de linux avec son aide pour connaitre la fonction que tu recherche...


bon pour getch je me suis planté ...
http://www.unet.univie.ac.at/aix/libs/basetrf2/getch.htm
moi je n ai pas la library curse donc....test toujours c 'est peu etre l'equivalent linux...

sinon
http://c.conclase.net/Borland/funcion.php?fun=getch
donc test avec conio.h
ca marche chez moi... ;-)
c'estait pour faire quoi le getch d'ailleur?


sinon pour la library system linux voila ce que j ai trouvé sur le net...
http://pficheux.free.fr/articles/lmf/threads/
qui utilise la fonction sleep(int temps) avec la librairie #include <unistd.h>) sous linux.. ;-)

j'espere qu'avec tout ca tu va regler ton probleme ^^
Ajouter un commentaire
Réponse
+0
moins plus
Merci encore Canard007. Vraiment, merci de ta patience.
Effectivement, il faut mettre #include<curse.h> pour avoir la fonction getch();

Merci grdTonioHardware. man getch donne bcp de renseignement. Mais je ne savais pas que les fonctions propres au C++ se retrouvaint dans le man.

Merci de votre patience.

Pom
Ajouter un commentaire
Réponse
+0
moins plus
aucun probleme..
ca fait toujours plaisir de rendre service ;-)
Ajouter un commentaire
Réponse
+0
moins plus
Pareil !!

@++ !!
Ajouter un commentaire
Réponse
+0
moins plus
#include <windows.h>
Avec la fonction Sleep(int temps);

tu a juste a lui envoyer le temps de ta pause en parametre. Attention ! c'est en millisecondes.
Ajouter un commentaire
Réponse
+0
moins plus
bonjour je veux savoir dans librairie définit-on le méthode sleep() en C++
Ajouter un commentaire
Réponse
-1
moins plus
Sleep() !
pom - 18 juin 2004 à 15:48
Salut Flipody,
quand je fais Sleep(); le compilateur me répond
`Sleep' undeclared (first use this function)

Y a-t-il un .h à mettre ?

merci
pom
Ravachol- 18 juin 2004 à 16:04
Salut,
essaye sleep() sans majuscule.

A++

La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
Flipody - 18 juin 2004 à 16:04
Moi quand je l'utilisais, c'était en C, et je ne rajoutais de bibliothèque supplémentaire, donc elle doit etre dans stdio.h
Par contre il ne faut pas juste mettre Sleep() ! , il faut que tu mettre un parametre, je crois que c'est des mllsecond ou un truc ds le genre je sais plus trop lol!
ex : Sleep(100);

En espérant que ça marche, bon courage !

Flipody
Ajouter un commentaire
Ce document intitulé « comment faire une pause en C++ » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
comment faire une pause en C++ - page 2