Faire une pause en C++ et boucle if.

Tef -  
 Ryuzaki -
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   > folken29 Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   6
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   6
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   6
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   6
 
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   Statut Membre Dernière intervention  
 
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
Ryuzaki
 
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