OVH Cloud OVH Cloud

Pause dans un prog

14 réponses
Avatar
Pascal
Bonjour,

Eternel problème : comment faire pour faire une pause dans un programme?
Je dois afficher un message d'erreur à l'utilisateur, puis qu'il
appuie sur entrer pour repasser sur le menu principal.

10 réponses

1 2
Avatar
Fabien LE LEZ
On Tue, 08 Feb 2005 22:40:52 +0100, Pascal :

Eternel problème : comment faire pour faire une pause dans un programme?


Deux voies :
- (n)curses pour une vraie interface en ligne de commande
- version portable :
string ligne_bidon;
getline (cin, ligne_bidon);


--
;-)

Avatar
noone
Fabien LE LEZ wrote:
On Tue, 08 Feb 2005 22:40:52 +0100, Pascal :


Eternel problème : comment faire pour faire une pause dans un programme?



Deux voies :
- (n)curses pour une vraie interface en ligne de commande
- version portable :
string ligne_bidon;
getline (cin, ligne_bidon);




et la mauvaise méthode

system("pause");
(je me demande si DevC++ ne fait pas un truc comme ça par défaut comme
projet console... à confirmer)


Avatar
Fabien LE LEZ
On Wed, 09 Feb 2005 10:39:58 +0100, ""
:

et la mauvaise méthode

system("pause");


Mon dieu mon dieu... Je préfère encore getch().


--
;-)

Avatar
kanze
Fabien LE LEZ wrote:
On Tue, 08 Feb 2005 22:40:52 +0100, Pascal :

Eternel problème : comment faire pour faire une pause dans un
programme?



Deux voies :
- (n)curses pour une vraie interface en ligne de commande
- version portable :
string ligne_bidon;
getline (cin, ligne_bidon);


Juste un détail, mais qu'est-ce que tu entends par « ligne de
commande » ? Parce que j'aurais dit, moi, que (n)curses est tout
autre qu'en ligne de commande.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
Fabien LE LEZ
On 9 Feb 2005 04:10:38 -0800, :

qu'est-ce que tu entends par « ligne de
commande » ?


C'est un raccourci pour désigner un mode non-GUI.


--
;-)

Avatar
Pascal
On Tue, 08 Feb 2005 22:51:18 +0100, Fabien LE LEZ wrote:

string ligne_bidon;
getline (cin, ligne_bidon);


sous linux, ca ne marche pas. Alors j'ai pensé à faire un fflush(null),
mais ça n'a pas marché.

Avatar
Pascal
On Wed, 09 Feb 2005 11:08:09 +0100, Fabien LE LEZ wrote:

Mon dieu mon dieu... Je préfère encore getch().


Pour utiliser getch() sous linux, il faut bien inclure <curses.h>?
J'ai fait ça, mais ça ne marche pas non plus.

Avatar
kanze
Pascal wrote:
On Tue, 08 Feb 2005 22:51:18 +0100, Fabien LE LEZ wrote:

string ligne_bidon;
getline (cin, ligne_bidon);


sous linux, ca ne marche pas. Alors j'ai pensé à faire un
fflush(null), mais ça n'a pas marché.


Sous Linux, ça marche comme partout ailleurs, mais il faut voir
ce que tu as fais avant. Il se peut qu'il y a une erreur avant
qui ne se manifeste qu'ici, ou que tu n'as pas pensé à lire
toute la ligne avant, ce qui fait q'il y a encore une (partie
de) ligne dans le buffer. Et évidemment, si tu utilises quelque
chose du genre curses, qui a changé le mode des entrées clavier,
ça risque de ne pas marcher non plus.

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34


Avatar
Alexandre
"Pascal" a écrit dans le message de news:

On Tue, 08 Feb 2005 22:51:18 +0100, Fabien LE LEZ wrote:

string ligne_bidon;
getline (cin, ligne_bidon);


sous linux, ca ne marche pas. Alors j'ai pensé à faire un fflush(null),
mais ça n'a pas marché.


si tu veux vider le buffer d'entrée je ferais plutôt
cin.sync() ;
avant.


Avatar
Pascal
On Thu, 10 Feb 2005 01:13:39 -0800, kanz wrote:

Sous Linux, ça marche comme partout ailleurs, mais il faut voir
ce que tu as fais avant. Il se peut qu'il y a une erreur avant
qui ne se manifeste qu'ici, ou que tu n'as pas pensé à lire
toute la ligne avant, ce qui fait q'il y a encore une (partie
de) ligne dans le buffer. Et évidemment, si tu utilises quelque
chose du genre curses, qui a changé le mode des entrées clavier,
ça risque de ne pas marcher non plus.


Dans ce cas, je ne comprends pas pourquoi ça ne marche pas. Je ne touche pas au ncurses. Tout ce que
je fais, c'est afficher un message avant.

1 2