Rechercher : dans
Par :

Comment faire une pause en C++

Dernière réponse le 21 jun 2004 à 17:10:17 pom, le 18 jun 2004 à 15:40:01 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « comment faire une pause en C++ » dans :
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
[Langage C] C/C++ Erreur de segmentation VoirQu'est ce qu'une erreur de segmentation Vous êtes en train de développer une application sous Linux en C/C++. Tout va bien, ça compile, les oiseaux chantent. Donc vous lancez votre application pour la tester. Et vous obtenez l'un de ces deux...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Langage C - Les opérateurs VoirQu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...

1

Flipody, le 18 jun 2004 à 15:42:27

Sleep() !

Répondre à Flipody

2

pom, le 18 jun 2004 à 15:48:41

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

Répondre à pom

3

Ravachol, le 18 jun 2004 à 16:04:09

Salut,
essaye sleep() sans majuscule.

A++

La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD

Répondre à Ravachol

4

Flipody, le 18 jun 2004 à 16:04:43

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

Répondre à Flipody

5

David, le 18 jun 2004 à 16:09:52

Sleep();
il est defini dans #include<windows.h>

Répondre à David

6

pom, le 18 jun 2004 à 16:25:37

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

Répondre à pom

7

Ravachol, le 18 jun 2004 à 16:27:58

Re,
regardes le message N°3, je t'ai repondu et je suis sous Linux aussi.

A++

La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD

Répondre à Ravachol

8

Flipody, le 18 jun 2004 à 16:30:11

La fonction getch() placé dans un programme attends que l'utilisateur appuie sur une touche pour continuer.

Flipody

Répondre à Flipody

9

pom, le 18 jun 2004 à 16:47:07

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

Répondre à pom

11

Ravachol, le 18 jun 2004 à 16:58:47

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

Répondre à Ravachol

10

Canard007, le 18 jun 2004 à 16:51:04

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..

Répondre à Canard007

12

pom, le 18 jun 2004 à 17:14:18

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

Répondre à pom

13

Abraxas, le 18 jun 2004 à 18:40:33
  • +4

System("pause"); ou l'équivalent de la commande DOS "pause" à la place et c'est bon!
a+

Répondre à Abraxas

14

Abraxas, le 18 jun 2004 à 18:41:19

*l'équivalent unix/linux

Répondre à Abraxas

15

drizzt40, le 18 jun 2004 à 19:55:49

Pourquoi tu te fais pas une methode maison pause()???

=}- The_Str@nger -{=

Répondre à drizzt40

16

magiczz, le 20 jun 2004 à 12:04:12

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!!!!!!!

Répondre à magiczz

17

Abraxas, le 20 jun 2004 à 22:04:39

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

Répondre à Abraxas

18

pom, le 21 jun 2004 à 09:37:52

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

Répondre à pom

19

Canard007, le 21 jun 2004 à 10:45:18

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...

Répondre à Canard007

20

pom, le 21 jun 2004 à 11:27:44

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

Répondre à pom

21

Canard007, le 21 jun 2004 à 14:49:51

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 ^^

Répondre à Canard007

22

grdTonioHardware, le 21 jun 2004 à 15:43:40
  • +1

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 !!
@++ !!!

Répondre à grdTonioHardware

23

pom, le 21 jun 2004 à 16:21:50

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

Répondre à pom

24

Canard007, le 21 jun 2004 à 17:04:42

Aucun probleme..
ca fait toujours plaisir de rendre service ;-)

Répondre à Canard007

25

 grdTonioHardware, le 21 jun 2004 à 17:10:17

Pareil !!

@++ !!

Répondre à grdTonioHardware