[Débutant] Disparition de la fenetre dos
Bonjours,
Je développe sous windows avec dev c++.
Afin de pouvoir garder ma fenetre dos visible a la fin, je termine mes programmes par un scanf inutile.
Voici mon code, qui demande simplement a l'utilisateur d'entrer les valeur d'un tableau, et qui arrete de récupérer ces valeurs lorsque la fin du tableau est atteinte ou lorsque l'utilisateur appui sur une touche qui n'est pas du type %d:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
int main(void) {
int u, nb ;
int test = 1 ;
int i = 0 ;
int tab [10] ;
while(i < 10 && test != 0) {
printf("Entrez la valeur %d du tableau: ", i+1) ;
test = scanf("%d", &nb) ;
if(test != 0) {
tab[i] = nb ;
i++ ;
}
}
/* ... code de tri et d'affichage du tableau avant et aprés tri... */
scanf("%d", &u);
return 0 ;
} |
Mon problème est le suivant: lorsque l'utilisateur entre correctement les valeurs, tout va bien, mais lorsque l'utilisateur entre autre chose qu'un entier (une lettre par exemple), mon programme se termine correctement mais ma fenetre dos ne reste pas affichée, et on ne peut donc pas observer l'affichage obtenu...
Je ne voi pas ou est le probleme... si quelqu'un peu m'aider :)
Merci d'avance.
Re: [Débutant] Disparition de la fenetre dos
A la fin tu peux aussi mettre getch () ou system ("pause").Tu n'a pas besoin de déclarer une variable test pour le if et le while tu peux le faire directement avec ta variable nb.Oui il est très recommander d'utiliser fgets pour la saisie, pour ca je te conseille le site d'emmanuel delahaye.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
int main(void) {
int nb ;
int i = 0;
int tab [10] ;
while(i < 10 && nb != 0) {
printf("Entrez la valeur %d du tableau: ", i+1) ;
scanf("%d", &nb) ;
if(nb != 0) {
tab[i] = nb ;
i++ ;
}
}
getch ();
return 0 ;
} |