Petit probleme de pause

sozer2 Messages postés 9 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 14 mars 2004 - 8 mars 2004 à 23:22
sozer2 Messages postés 9 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 14 mars 2004 - 9 mars 2004 à 21:57
Bonjour je suis débutant en C++ et j'ai un ptit probleme
Je souhaite faire une pause sous linux mais la fonction system("pause"); ne marche que sous windows (a moins qu'il y ai besoin d'un librairie spéciale)
J'ai crée une boucle et quand j'utilise la fonction getchar() ou cin.get ma premiere boucle for (avec le i) est lancé deux fois avant de passer en pause normalement(voir partie du programme), je n'arrive pas a comprendre pourquoi????

void affiche_catalogue(int nb_produits)
{
int i;
int j;
for(i=0; i<nb_produits; i++)
{
for (j=0;j<2;j++)
{
if(i<nb_produits)
{
liste[i]->affiche_produit(i); i++;
}
}

cout<<"Appuyer sur n'importe quelle touche pour continuer\n";
//getchar(); (probleme le for (i=0... est executé 2 fois avant que le getchar ne crée une pause)

system("pause");
i--;
}
}

Merci

3 réponses

petitchech Messages postés 114 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 28 juin 2004
9 mars 2004 à 12:29
Salut essai de remplacé getchar(); par getch(); ( inclue conio.h)
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
9 mars 2004 à 20:05
les system sont a proscrire, system c'est standard, cependant system("pause"); c'est tout sauf portable

ensuite quand tu veut faire un truc et qe tu sai pas faire (ca arrive a tous le monde ;) ), evite de bricoler un truc de remplacement

pour faire une pause, sert toi de la lib standard time

#include <ctime>

using namespace std;

void pause(int miliseconde)
{
int beg=clock();
while(clock()-beg<=miliseconde);
}
0
sozer2 Messages postés 9 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 14 mars 2004
9 mars 2004 à 21:57
Merci a tous
c bon j'ai trouvé le problème
une saisie précedante avec un enter qui restait en mémoire pour le getchar
0
Rejoignez-nous