Faire une pause en C++ et boucle if.

Fermé
Tef - 8 juil. 2002 à 15:45
 Ryuzaki - 23 mars 2008 à 16:14
Salut à tous.
Je débute en C++ et j'ai fais un p'tit programme mais je n'arrive pas à voir le résultat.
Normalement, à la fin, j'ai une phrase qui m'affiche le résultat d'un calcule mais à ce moment-là, la fenêtre dos se ferme.

Comment faire pour éviter qu'elle se ferme de suite ?

Autre question, j'ai uen variable comportant soit o, soit n (Oui ou Non). C'est vraiment con, mais comment lire la variable et lui dire de recommencer le programme ou de sortir ?
Désolé pour cette question vraiment simpliste. Je ne connais que le php et le VB...

Je pense que c'est un truc du style :
char rep;
If rep=="y"
{
goto 1;
else
exit();
}

Merci !

stéphane
http://www.tefonline.net

11 réponses

folken29 Messages postés 24 Date d'inscription jeudi 21 mars 2002 Statut Membre Dernière intervention 5 août 2003 1
8 juil. 2002 à 16:16
je suis pas spécialiste en programmation, mais en C la fonction getch() permet de faire une pause jusqu'à ce que tu appuies sur une touche.

voilà
0
tef Messages postés 9 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 10 juillet 2002
8 juil. 2002 à 16:19
Merci de ta réponse.
Je dois juste mettre getch(); ??
Parce que ça ne fonctionne pas.... :( sniff.....

Stéphane
http://www.tefonline.net
0
folken29 Messages postés 24 Date d'inscription jeudi 21 mars 2002 Statut Membre Dernière intervention 5 août 2003 1
8 juil. 2002 à 16:26
oui je sais plus, c'est peut etre getchar();
mais il faut avoir fait un #include <stdio.h> avant
0
tef Messages postés 9 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 10 juillet 2002 > folken29 Messages postés 24 Date d'inscription jeudi 21 mars 2002 Statut Membre Dernière intervention 5 août 2003
8 juil. 2002 à 16:38
Heu......

Désolé mais non...

Je te file le code, ce sera plus simple. C'est un exemple que j'ai trouvé dans un .pdf et je voulais le tester.

#include <stdio.h>

long double x,y;
int main (void)
{
printf("Calcul de moyenne\n"); /*Affiche le titre.*/
printf("Entrez le premier nombre : ");
scanf("%Lf", &x); /*Entre le premier nombre.*/
printf("Entrez le deuxième nombre : ");
scanf("%Lf", &y); /*Entre le deuxième nombre.*/
printf("\nLa valeur moyenne de %Lf et de %Lf est de %Lf.\n",
x, y, (x+y)/2);
getchar();
}

Merci !

Stéphane
http://www.tefonline.net
0
tef Messages postés 9 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 10 juillet 2002
9 juil. 2002 à 12:09
Désolé de relancer mais est-ce que quelq'un peut m'aider pour ma boucle et mon pb de pause ?

Merci d'avance... :)

Stéphane
http://www.tefonline.net
0
gaillardps Messages postés 94 Date d'inscription mercredi 27 mars 2002 Statut Membre Dernière intervention 9 décembre 2005 6
9 juil. 2002 à 15:44
Hello tef,

il y a une fonction en C qui s'appelle:

sleep();

entre les parenthèses tu mets le temps (je crois que c'est des millisecondes).

Bonne chance

PS

"Le grain de riz a toujours tort devant la poule"
0
tef Messages postés 9 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 10 juillet 2002
9 juil. 2002 à 15:49
Alors merci pour ta réponse Gaillardps.

J'ai étudié le getchar().
Ce qu'il en retourne. J'ai réécrit le code de la façon suivante :


#include <stdio.h>
#include <iostream>

long double x,y,z;
char choix;
int main (void)
{
cout << "Calcul de moyenne";
cout << endl << "Entrez le premier nombre : ";
cin >> x;
cout << endl << "Entrez le deuxième nombre : ";
cin >> y;
z = (x+y)/2;
cout << "La valeur moyenne de " << x << " et de " << y << " est de " << z << ".";
getchar();
return 0;
}

Apparement ça fonctionne bien comme ça.
J'ai toujours mon pb pour mon if mais je vais essayer de chercher un peu et si je trouve pas, je repasserais vous voir !

Merci encore pour vos aides si précieuse... ;)

Stéphane
http://www.tefonline.net
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gaillardps Messages postés 94 Date d'inscription mercredi 27 mars 2002 Statut Membre Dernière intervention 9 décembre 2005 6
9 juil. 2002 à 15:52
Excuse, j'ai pas compris ton pb avec ta boucle, tu veux pas répété.

PS

"Le grain de riz a toujours tort devant la poule"
0
tef Messages postés 9 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 10 juillet 2002
9 juil. 2002 à 16:08
En gros,
je veux si la réponse est o ou O alors il recommence le prog, autrement il quitte.

J'ai réussi un peu mais c'est pas propre du tout. Avec une étiquette et un goto et j'ai dit :
test :
...mon code...
cout << endl << "Voulez-vous recommencer ?(Oui=1 et Non=0) : ";
cin >> a;
if (a == 1)
{
goto test;
}

Voilà. Mais j'aime pas trop ça.


Stéphane
http://www.tefonline.net
0
gaillardps Messages postés 94 Date d'inscription mercredi 27 mars 2002 Statut Membre Dernière intervention 9 décembre 2005 6
9 juil. 2002 à 16:28
et si tu fais un truc dans le genre:

int a =1;

while a==1{
test :
...mon code...
cout << endl << "Voulez-vous recommencer ?(Oui=1 et Non=0) : ";
cin >> a;
}

PS
"Le grain de riz a toujours tort devant la poule"
0
tef Messages postés 9 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 10 juillet 2002
9 juil. 2002 à 17:08
en fait, je ne veux pas faire avec O ou 1 mais avec O ou o et N ou n.

Stéphane
http://www.tefonline.net
0
gaillardps Messages postés 94 Date d'inscription mercredi 27 mars 2002 Statut Membre Dernière intervention 9 décembre 2005 6
9 juil. 2002 à 17:15
char a = 'o';

while ((a=='o') || (a=='O')){
test :
...mon code...
cout << endl << "Voulez-vous recommencer ?(Oui=o et Non=n) : ";
cin >> a;
}

Je suis pas sur pour le simple ou double cote

PS
"Le grain de riz a toujours tort devant la poule"
0
tef Messages postés 9 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 10 juillet 2002
10 juil. 2002 à 11:19
Le fin mot de l'histoire !
J'ai réussi.

Alors j'ai laissé tombé le code While et joué avec if.

Voici le code :

#include <stdio.h>
#include <iostream>

long double x,y,z;
char a;
int main (void)
{
test:
cout << "Calcul de moyenne";
//printf("Calcul de moyenne\n"); /*Affiche le titre.*/
cout << endl << "Entrez le premier nombre : ";
cin >> x;
cout << endl << "Entrez le deuxième nombre : ";
cin >> y;
z = (x+y)/2;
cout << "La valeur moyenne de " << x << " et de " << y << " est de " << z << ".";
cout << endl << "Voulez-vous recommencer ?(Oui=o et Non=n) : ";
cin >> a;
if ((a == 'o') || (a == 'O'))
{
goto test;
}
getchar();
return 0;
}

En espérant que cela pourrat servir pour d'autres personnes...

Merci à tous ceux qui m'ont aidé à y voir plus clair.

Stéphane
http://www.tefonline.net
0
Pour faire une pause quand ta chaine de caractères est affichée, tu peux faire un appel système ( un peu barbare, mais simple et efficace ) :

system("pause");

( n'oublie pas de rajouter le header :
#include "stdlib.h" )

a+
0