Comment faire pour que la fenetre dos ne se ferme pas - C++ - Programmation
Marsh Posté le 10-12-2002 à 21:48:03
système bourrin :
system("pause" ); |
Marsh Posté le 10-12-2002 à 21:51:11
ReplyMarsh Posté le 10-12-2002 à 21:56:18
tu peux faire un getchar();
Marsh Posté le 10-12-2002 à 21:57:21
C'est pas getchar()
Tu le met a la fin de ton prog et je crois qu'a la fin il faut faire un retour chariot pour fermer la fenetre... Je ne suis pas sur je n'ai jamais fait de C mais comme en pascal c writeln je crois qu'avec le C ca marche.
Marsh Posté le 10-12-2002 à 22:02:21
j'ai fait ca et ca ne marche pas
Citation : #include<stdio.h> |
Marsh Posté le 10-12-2002 à 22:04:22
"ça marche pas"
c'est à dire ?
essaie un fflush(stdin); avant le getchar, au cas où des caractères resteraient dans le buffer...
Marsh Posté le 10-12-2002 à 22:07:44
antp a écrit : "ça marche pas" |
ca marche comme ca
Marsh Posté le 10-12-2002 à 22:08:23
et ca sert a koi alors ca:
Citation : fflush(stdin); |
Marsh Posté le 10-12-2002 à 22:10:25
forummp3 a écrit : et ca sert a koi alors ca:
|
ca sert à rien.
fflush(outstream) permetde flusher un flux de sortie, c'est à dire de vider son buffer, c'est à dire de terminer toutes les opérations d'écritures en attente de réallisation. ca n'a aucun sens sur un flux d'entrée.
getchar() permet de lire un caractere
Marsh Posté le 10-12-2002 à 22:29:36
Taz@PPC a écrit : ca n'a aucun sens sur un flux d'entrée. |
bhen si, ça vire ce qui est dans le buffer d'entrée
genre l'utilisateur appuie comme un boolay sur des touches pendant que ton soft fait des calculs, puis tu lui mets le message "appuyez sur une touche pour quitter", si tu vides pas le buffer en entrée bhen ça quittera direct...
Marsh Posté le 10-12-2002 à 22:31:12
antp a écrit : |
. me demande pas de te citer le K&R s'il teu plé, chui crevé
Marsh Posté le 10-12-2002 à 22:32:32
bah oui mais comment t'expliques que ça marche alors
Marsh Posté le 10-12-2002 à 22:33:30
Taz@PPC a écrit : . me demande pas de te citer le K&R s'il teu plé, chui crevé |
quand je l'enleve la fenetre se ferme et quand je le laisse ce n'est pas le cas.
Marsh Posté le 10-12-2002 à 22:34:08
ReplyMarsh Posté le 10-12-2002 à 22:36:30
forummp3 a écrit : |
c'est un comportement indéfini: ca peut marcher et pas marcher.
Marsh Posté le 10-12-2002 à 22:36:56
Taz@PPC a écrit : c'est le getchar qui fait effet et pas fflush. si effectivement le buffer de stdin est plein, alors le getchar final est sauté (c'est à dire t'as tapé trop / pas tout lu lors de ta derniere entrée) |
j'suis debutant et g pas tout compris dans ce que tu as dit
Marsh Posté le 10-12-2002 à 22:40:15
si tu as tres bien compirs: lance ton exe dans une fenetre DOS!
l'entrée standard est muni d'un buffer: quand tu tapes un truc, ca passe par ce buffer et ton processus lis dans ce buffer. si tu tapes plus que ton processus de vas lire: à la fin de lecture de ton processus, il reste des caractères non-encore lus dans le buffer
Marsh Posté le 10-12-2002 à 22:41:57
Taz@PPC a écrit : si tu as tres bien compirs: lance ton exe dans une fenetre DOS! |
ha ok,mais a chaque fois je ne tape qu'une seul fois et la fenetre ce ferme quand meme.
Marsh Posté le 10-12-2002 à 23:00:07
j'ai refait un autre code et si on enleve une des deux ligne que vous m'avez donner he bien ca se ferme quand meme:
Citation : #include<stdio.h> |
Marsh Posté le 10-12-2002 à 23:04:37
1) ces deux lignes sont fausses.
2) ton programme ne marche pas car il plante: c'est scanf("%s", nom);
et si tu veux vraiment pas lancer ton programme dans une console DOS, mets un system("PAUSE" ); à la fin et c'est tout !!!!
Marsh Posté le 10-12-2002 à 23:06:28
Taz@PPC a écrit : |
et le fflush ne permet pas de vider ce buffer ?
Marsh Posté le 10-12-2002 à 23:07:44
antp a écrit : |
sur un flux d'entrée, ca n'a sémantiquement pas de sens et c'est indéfini en C
Marsh Posté le 10-12-2002 à 23:09:27
bah je ne demande qu'à te croire mais bon j'ai jamais rien vu qui disait ça
et je n'avais encore vu personne que fflush(stdin) choquait...
Marsh Posté le 10-12-2002 à 23:11:12
Taz@PPC a écrit : 1) ces deux lignes sont fausses. |
il plante pas puisque j'ai mis num partout et non nom
c pas tres logiques mais j'ai fait que reprendre l'ancien code.
Marsh Posté le 10-12-2002 à 23:12:16
rhaaaaaaaaaaaaaaaaa. depuis quand tu fais du C
K&R p.246 annexe B1.1
int fflush(FILE *stream) |
Marsh Posté le 10-12-2002 à 23:12:24
forummp3 a écrit : |
il voulait dire que tu devais pas mettre le "&" devant la variable si c'est une chaîne que tu lis, vu qu'une chaîne (tableau de caractères) est déjà un pointeur.
Marsh Posté le 10-12-2002 à 23:13:19
Taz@PPC a écrit : rhaaaaaaaaaaaaaaaaa. depuis quand tu fais du C |
j'ai fait du C sur mainframe puis c'est tout chuis directement passé au C++ sur PC
Marsh Posté le 10-12-2002 à 23:14:01
forummp3 a écrit : |
putain je te parle pas de ca bordel, le nom je m'en fou. achete toi un bouquin correct de C et fait scanf("%s", my_fucken_dummy_char_tab) et pas scanf("%s", &my_another_ucken_dummy_char_tab);
Marsh Posté le 10-12-2002 à 23:14:26
antp a écrit : |
et un tableau n'est pas un pointeur
Marsh Posté le 10-12-2002 à 23:17:16
Taz@PPC a écrit : et un tableau n'est pas un pointeur |
je voulais dire que la variable "tableau" contient l'adresse du premier élément, comme un pointeur
non ?
Marsh Posté le 10-12-2002 à 23:17:51
Taz@PPC a écrit : putain je te parle pas de ca bordel, le nom je m'en fou. achete toi un bouquin correct de C et fait scanf("%s", my_fucken_dummy_char_tab) et pas scanf("%s", &my_another_ucken_dummy_char_tab); |
avec ou sans le & ca plante pas
Marsh Posté le 10-12-2002 à 23:18:22
antp a écrit : |
c'est ça, rattrape toi aux branches. effectivement
Marsh Posté le 10-12-2002 à 23:19:20
forummp3 a écrit : |
note pour plus tard: offrir un livre de francais pour noel a forummp3
Marsh Posté le 10-12-2002 à 23:19:54
Taz@PPC a écrit : c'est ça, rattrape toi aux branches. effectivement |
bhen c'est pareil
char tableau[10] et char *tableau, dans les deux cas tableau contient une adresse mémoire, non ...
enfin moi c'est ce que j'appelle "pointeur", désolé d'avoir de t'avoir heurté en utilisant le mauvais terme
Marsh Posté le 10-12-2002 à 21:46:21
Je fais un programme en c,je le compile avec dev c++ et je l'execute,mais le probleme c'est que quand je l'execute,il se ferme tout seul a la fin et je n'ai pas le temps de voir le printf.
Mon code est le suivant:
#include<stdio.h>
int num;
void main()
{
printf("entre un num: \n" );
scanf("%i",&num);
printf("ton num est %i\n",num);
}
Comme je doit faire pour pas que la fenetre se ferme?