Dev C++

Fermé
François - 29 sept. 2004 à 19:11
 François - 30 sept. 2004 à 10:29
Je reprends ici une question qui a déjà été posée il y a quelque temps par Ludo dans le forum "logiciel". Malheureusement et sauf erreur de ma part elle est restée sans réponse.
Voilà donc le problème.
J'ai installé Dev-C++ 5 Beta 9 (4.9.9.0) sur mon pc (windows 95).
Lorsque j'execute un programme la fenêtre sur laquelle sont affichées les sorties écran est automatiquement effacée dès que le programme est terminé.
Je n'ai rien trouvé d'autre que d'ajouter en fin de programme l'entrée d'un nombre à l'ecran. Est ce qu'un internaute doué peut m'expliquer ce qui se passe et éventuellement me donner une solution sérieuse ?
Finalement j'ai une autre question certainement liée à la précedente. Pour terminer une saisie de données à l'écran ctrl-D ne fonctionne pas. Qu'est ce que je peux faire ?
Je remercie d'avance la(les) personnes qui voudra(ont) bien me consacrer un peu de temps.
Cordialement
François
A voir également:

2 réponses

Salut!

Pour pas que la console se ferme à la fin de l'exécution soit tu ouvre une nouvelle console et tu lance l'exécution de l'application ou bien tu fais une pause sytème par:

/* en c */

#include <stdlib.h>

/* blablabla */

system("pause");

/* en c++ */

#include <cstdlib>

/* blablabla */

std::system("pause");

Pour la fin de la saisie dans le flux d'entrée standard stdin tu peux par exemple avec la fonction scanf définir le(s) caractère(s) valide(s) donc les invalides constitueront la fin de la saisie.

/* exemple en c */

#include <stdlib.h>

/* blablabla */

char s[256];

/* de a maj a z maj est valide */

scanf("%[A-Z]s", s);

/* $ est invalide */

scanf("%[^$]s", s);

A noter que le tiret n'est pas défini par le standard mais dépend de l'implémentation du compilo donc il se pourrait qu'en changeant de compilo le code ne passe pas ou engendre une action différente. Une alternative standard serait de donner la liste complète des caractères ou de procéder par élimination.

/* par exemple */

scanf("%[0123456789ABCDEF]s", s);

/* ou bien */

scanf("%[^0123456789ABCDEF]s", s);
0
Bonjour,

Merveilleux !

Les deux problèmes sont résolus !

Merci Guki !

François
0