Écran de pause à la fin du programme en C

Je veux être capable de faire quelque chose comme Press any key to exit à la fin du programme, mais je n’ai pas été capable de trouver comment.

Lorsque je lance mon programme, le terminal se ferme avant que je puisse voir les résultats.

 //by Nyxm #include  main() { int temp, x, flag, num, size; printf("\nEnter how many numbers you wish to enter: "); scanf("%d", &size); int array[size]; for (x = 0; x < size; x++) { printf("Enter an integer: "); scanf("%d", &num); array[x] = num; } printf("Please enter either 1 or 2\n1:\tAscending\n2:\tDescending\n\n..."); scanf("%d", &num); if (num == 1) { flag = 0; while (flag == 0) { flag = 1; for (x = 1; x < size; x++) { if (array[x] < array[x-1]) { flag = 0; temp = array[x]; array[x] = array[x-1]; array[x-1] = temp; } } } } else { flag = 0; while (flag == 0) { flag = 1; for (x = 1; x < size; x++) { if (array[x] < array[x-1]) { flag = 0; temp = array[x]; array[x] = array[x-1]; array[x-1] = temp; } } } } printf("\nYour sorted array:\n"); for (x = 0; x < size; x++) { printf("%d\n", array[x]); } } 

Aucune suggestion?

J’utilise MonoDevelop à Wubi , si cela fait une différence.

Pour faire ce piratage rapide, les deux options les plus courantes sont:

 /* Windows only */ #include  system("pause"); 

et

 /* Cross platform */ #include  printf("Press enter to continue...\n"); getchar(); 

Je suggère la dernière méthode, bien que la première méthode déclenche réellement sur n’importe quelle touche tandis que la dernière déclenche uniquement sur entrée.

Utilisez getchar() :

 ...program... printf("press enter to continue...\n"); getchar() 

Selon vos besoins et votre plate-forme, vous pouvez utiliser getch () (ou _getch ()) ou finalement getchar ().

Le problème avec getchar() est qu’il oblige l’utilisateur à appuyer sur “entrée”. L’avantage de getchar () est qu’il est standard et multiplate-forme.

getch() obtient toutes les autres propriétés: il suffit d’appuyer sur une touche, pas d’affichage, pas “entrée” nécessaire. Mais ce n’est pas standard, donc le support varie en fonction de la plate-forme.

Alternativement, pour les fenêtres uniquement, il y a aussi:

 system("pause"); 

getchar() est la bonne solution, mais vous rencontrerez des problèmes dus au fait que scanf laissé '\n' dans le tampon d’entrée. Il reviendra immédiatement. Voir Pourquoi getchar () n’attend-il pas que j’appuie sur Entrée après scanf ()?

Options possibles: 1) système (“pause”); 2) getch (); 3) getchar ();

C’est une vieille question mais je pensais append une technique que j’utilise pour tester des programmes sur une machine Windows.

Comstackr le programme dans un exe. Et créez ensuite un script batch pour “encapsuler” le programme dans le sens de:

 @echo off foo.exe pause exit 

qui exécutera votre programme comme il se doit, sans aucune manipulation, tout en vous permettant de mettre en pause la fenêtre et de voir la sortie.