Pauses pendant un programme en C

Résolu
cucrapock Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
tchsimons Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

comment peut on faire pour marquer une pause dans un programme en langage C. J'ai essayé les printf et les scanf mais ils ont tendance à ne pas être pris en compte lorsqu'il se trouve, par exemple, juste avant une erreur de segmentation (que l'on cherche à repérer d'ailleurs...).

D'avance merci

2 réponses

mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Pour faire une pause (ie attendre que l'utilisateur presse une touche) il suffit d'utiliser l'instruction getchar() :
#include <stdio.h>

int main(){
  printf("presse une touche !\n");
  getchar();
  printf("fin\n");
  return 0;
}

Pour repérer l'endroit et la cause d'une erreur de segmentation le mieux c'est d'utiliser un debugger. Compile les fichiers .c avec l'option -g (si tu utilises gcc), puis lance gdb :
gcc -g -W -Wall plop.c -o plop.exe
gdb plop.exe

Dans gdb lance le programme en mettant derrière r les eventuels paramètres pris par ton code :
r param1 param2 ....

Inévitablement la seg fault va se déclencher. Il suffit d'afficher la pile d'appel pour savoir exactement où le programme à planté (et pourquoi), en tapant :
bt

Bonne chance
1
cucrapock Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci beaucoup pour l'info :)
0
tchsimons Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   14
 
j'ai le meme probleme mais moi je voudrais qeu le boutton soi pris en compte que si l'utilisateur frappe sinon le programme continu normalement
0