IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

problème d'affichage


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut problème d'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    #include<stdio.h>
    #include<conio.h>
    typedef struct
    {
    	int j;
    	int m;
    	int a;
    	}date;
    typedef struct
    {
    	char nom[50];
    	char prenom[50];
    	char fonction[80];
    	date d;
    	float s;
    	}employe;
    int menu(void)
    {
    	int choix;   textbackground(RED);     textcolor(YELLOW);
    	clrscr();
    	gotoxy(3,2);textcolor(2); printf("MENU");
    	gotoxy(3,5); textcolor(7); printf("1-REMPLISSAGE");
    	gotoxy(3,10); printf("2-AFFICHAGE");
    	gotoxy(3,15); printf("3-RECHERCHE");
    	gotoxy(3,20);  printf("4-Quitter");
    	do{
    	gotoxy(55,35); printf("Tapez Votre Choix:");fflush(stdin);scanf("%d",&choix);
    	}while(choix<1||choix>4);
    	return choix;
    }
    void remplissage(employe b[],int *n)
    {        int i;
    	 char rep;
    	float salaire; textbackground(YELLOW);  textcolor(BLUE);
    	clrscr();
    i=0;
    do
    {      clrscr();
    	gotoxy(35,1); printf("EMPLOYE N %d :",i+1);
    	gotoxy(5,5); printf("NOM:"); fflush(stdin); scanf("%s",b[i].nom);
    	gotoxy(5,10); printf("PRENOM:"); fflush(stdin); scanf("%s",b[i].prenom);
    	gotoxy(5,15); printf("FONCTION:"); fflush(stdin); scanf("%s",b[i].fonction);
    	gotoxy(5,20); printf("Date de recrutement jj/mm/aaaa:"); fflush(stdin); scanf("%d/%d/%d",b[i].d.j,b[i].d.m,b[i].d.a);
    	salaire=b[i].s;
    	gotoxy(5,25); printf("SALAIRE:"); fflush(stdin);  scanf("%f",&salaire);
           gotoxy(50,40);	printf("Voulez-vous continuer O/N :"); fflush(stdin); scanf("%c",&rep);
     
    	i++;
    	}while(rep=='o'||rep=='O');
    	(*n)++;
    }
     
    void affichage(employe b[],int n)
    {
    	int a,i;
    		 textcolor(3);
    	clrscr();
    gotoxy(5,3); printf("NOM");
    gotoxy(15,3); printf("PRENOM");
    gotoxy(30,3); printf("FONCTION");
    gotoxy(45,3); printf("D. RECRUTEMENT");
    gotoxy(65,3); printf("SALAIRE");
     
    for(i=0,a=10;i<n;i++,a+=2)
    {
    	gotoxy(5,a); cprintf("%s",b[i].nom);
    	gotoxy(15,a); cprintf("%s",b[i].prenom);
    	gotoxy(30,a); cprintf("%s",b[i].fonction);
    	gotoxy(45,a); cprintf("%d/%d/%d",b[i].d.j,b[i].d.m,b[i].d.a);
    	gotoxy(65,a); cprintf("%f",b[i].s);
     
    }
    }
    char sousmenu(void)
    {
    	char rep;
    	clrscr();
    	gotoxy(5,5); cprintf("a-date de recrutement");
    	gotoxy(5,15); cprintf("b-nom");
    	gotoxy(35,40); printf("Tapez votre choix:"); fflush(stdin); scanf("%c",&rep);
    	return rep;
    	}
    void tri_nom(employe b[],int n )
    {
    	int i,j;
    	employe x;
    	for(i=0;i<n-1;i++)
    	for(j=i+1;j<n;j++)
    	{
    	if(strcmp(b[i].nom,b[j].nom>0))
    	{
    		x=b[i];
    		b[i]=b[j];
    		b[j]=x;
    	}}
    }
     
    void main(void)
    {
    	employe b[80];
    	int   n,c,o=1;
    	clrscr();
    do{
    c=menu();
    switch(c)
    {
    	case 1:{remplissage(b,&n); break;}
    	case 2:switch(sousmenu())
    	{
    		case 'a':tri_nom(b,n);affichage(b,n); break;
    		case 'b':o=1;break;
    	}break;
    	case 4:exit(0);break;
    }
     }while(o==1);
    getch();
    }

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Ne précise SURTOUT PAS la ligne qui pose problème on va se débrouiller à chercher pour toi

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    justement, je ne sais pas dans quelle ligne se trouve le problème.
    c'est un petit programme qui saisit les informations relatives aux employés mais quand je l'execute et je clique sur affichage rien ne s'affiche
    j'espere que quelqu'un peut m'aider car c'est un devoir à rendre

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par phenix1988 Voir le message
    c'est un petit programme qui saisit les informations relatives aux employés mais quand je l'execute et je clique sur affichage rien ne s'affiche
    L'exécution d'un programme console doit se faire à partir de la console et non en 'clickant dessus'...

    [Windows XP]
    Démarrer > Exécuter > cmd.exe

    Tu peux déjà corriger ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c: In function `remplissage':
    main.c:48: warning: format argument is not a pointer (arg 2)
    main.c:48: warning: format argument is not a pointer (arg 3)
    main.c:48: warning: format argument is not a pointer (arg 4)
    main.c: In function `tri_nom':
    main.c:95: warning: implicit declaration of function `strcmp'
    main.c:95: warning: ordered comparison of pointer with integer zero
    main.c:95: warning: passing arg 2 of `strcmp' makes pointer from integer without a cast
    main.c:95: warning: null argument where non-null required (arg 2)
    main.c: At top level:
    main.c:104: warning: return type of 'main' is not `int'
    main.c: In function `main':
    main.c:118: warning: implicit declaration of function `exit'
    Linking console executable: console.exe
    Process terminated with status 0 (0 minutes, 3 seconds)
    0 errors, 9 warnings
    OK, c'est une application plein écran (conio). Désolé de te décevoir, mais la souris n'est pas prise en compte par conio. Tu ne peux donc rien 'clicker'. Il faut utiliser le clavier.

    est peut être correct, mais n'a pas de signification. Il faut utiliser les constantes prédéfinies. D'ailleurs, tu les connais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       textbackground (RED);
       textcolor (YELLOW);
    Alors pourquoi ne pas écrire du code homogène ? Serait-ce du copié/collé sans réfléchir à ce qu'on fait ?

    En mode plein écran, on utilise cprintf() et non printf() (qui peut être redirigé, ou dont les attributs de couleur peuvent être ignorés ou simplement différents).
    Euh, par défaut, je suis en 80x25... (25 lignes de 80 colonnes)

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    je sais pas où vous avez exécuté ça , mais au niveau de compilation je ne trouve aucune problème, il y a un menu qui s'affiche avec 3 options:
    1- Remplissage
    2- Affichage
    3- Recherche

    lorsque je remplis les données concernant l'employé et que je veux les afficher en cliquant sur '2' là ça beug et j retourne à windows.


    en parlant sur printf et cprintf , est-ce que vs pouvez m'expliquer la différence entre les deux , car je ne vois aucune différence

    et merci pour votre aide

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par phenix1988 Voir le message
    je sais pas où vous avez exécuté ça , mais au niveau de compilation je ne trouve aucune problème, il y a un menu qui s'affiche avec 3 options:
    1- Remplissage
    2- Affichage
    3- Recherche
    Avec quoi tu compiles ?
    lorsque je remplis les données concernant l'employé et que je veux les afficher en cliquant sur '2' là ça beug et j retourne à windows.
    Ca c'est autre chose. (à l'étude ...).
    en parlant sur printf et cprintf , est-ce que vs pouvez m'expliquer la différence entre les deux , car je ne vois aucune différence
    printf() passe par le flux stdout.
    cprintf() affiche directement à l'écran.

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    j'utilise le borlandc et le turboc

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Déjà, le remplissage ne peut pas fonctionner avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    typedef struct
    {
       int j;
       int m;
       int a;
    }
    date;
     
    typedef struct
    {
       char nom[50];
       char prenom[50];
       char fonction[80];
       date d;
       float s;
    }
    employe;
     
    <...>
    void remplissage (employe b[], int *n)
    {
       <...>
       scanf ("%d/%d/%d", b[i].d.j, b[i].d.m, b[i].d.a);
    scanf() attend une ou des adresses (ici d'int).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       scanf ("%d/%d/%d", &b[i].d.j, &b[i].d.m, &b[i].d.a);
    D'une manière plus générale, fflush(stdin) n'est pas défini par le langage C (fflush() ne concerne que les flux sortants). Si le but est de purger le flux entrant, je conseille ceci :
    à placer après chaque usage de scanf(). Le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void fpurge (FILE *fp)
    {
       int c;
       while ((c = fgetc(fp)) != '\n' && c != EOF)
       {
       }
    }
    Mais l'usage que tu fais de scanf() est fragile, car tu ne contrôles pas la valeur retournée qui permet de savoir combien de conversions ont réussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
          salaire = b[i].s;
          gotoxy (5, 25);
          printf ("SALAIRE:");
          scanf ("%f", &salaire);
          fpurge (stdin);
    A quoi ça sert de passer par 'salaire' ?

    de plus, b[i].s n'est jamais mise à jour.

    Pourquoi pas, tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          gotoxy (5, 25);
          printf ("SALAIRE:");
          scanf ("%f", &b[i].s);
          fpurge (stdin);
    Si il s'agissait de faire un contrôle, celui-ci manque...

    Ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             if (strcmp (b[i].nom, b[j].nom > 0))
    n'a aucun sens. Tu veux sans doute dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
             if (strcmp (b[i].nom, b[j].nom) > 0)
    Ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          i++;
       }
       while (rep == 'o' || rep == 'O');
       (*n)++;
    est faux.

    Soit on incrément n à chaque tour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          i++;
          (*n)++;
       }
       while (rep == 'o' || rep == 'O');
    soit (et c'est plus logique), on l'augmente de i quand c'est terminé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          i++;
       }
       while (rep == 'o' || rep == 'O');
       (*n) += i;
    Avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
     
    #include<stdio.h>
    #include<string.h>
     
    #ifdef __TURBOC__
    #include<conio.h>
    #else
    #include<conio2.h>
    #endif
     
    #define X_MENU 3
    #define Y_MENU 2
     
    #define X_CHOIX 55
    #define Y_CHOIX 25
     
    typedef struct
    {
       int j;
       int m;
       int a;
    }
    date;
     
    typedef struct
    {
       char nom[50];
       char prenom[50];
       char fonction[80];
       date d;
       float s;
    }
    employe;
     
    void fpurge (FILE * fp)
    {
       int c;
       while ((c = fgetc (fp)) != '\n' && c != EOF)
       {
       }
    }
     
    int menu (void)
    {
       int choix;
     
       textbackground (CYAN);
       clrscr ();
     
       textcolor (LIGHTGRAY);
       gotoxy (X_MENU, Y_MENU);
       printf ("MENU");
     
       textcolor (BLACK);
       gotoxy (X_MENU, Y_MENU + 2);
       printf ("1-REMPLISSAGE");
     
       gotoxy (X_MENU, Y_MENU + 4);
       printf ("2-AFFICHAGE");
     
       gotoxy (X_MENU, Y_MENU + 6);
       printf ("3-RECHERCHE");
     
       gotoxy (X_MENU, Y_MENU + 8);
       printf ("4-Quitter");
     
       do
       {
          gotoxy (X_CHOIX, Y_CHOIX);
          printf ("Tapez Votre Choix : ");
          scanf ("%d", &choix);
          fpurge (stdin);
       }
       while (choix < 1 || choix > 4);
     
       return choix;
    }
     
    void remplissage (employe b[], int *n)
    {
       int i;
       char rep;
       clrscr ();
       i = 0;
       do
       {
          clrscr ();
     
          textcolor (LIGHTGRAY);
          gotoxy (X_MENU, Y_MENU);
          printf ("EMPLOYE N %d :", i + 1);
     
          textcolor (BLACK);
          gotoxy (X_MENU, Y_MENU + 2);
          printf ("NOM:");
          scanf ("%s", b[i].nom);
          fpurge (stdin);
     
          gotoxy (X_MENU, Y_MENU + 4);
          printf ("PRENOM:");
          scanf ("%s", b[i].prenom);
          fpurge (stdin);
     
          gotoxy (X_MENU, Y_MENU + 6);
          printf ("FONCTION:");
          scanf ("%s", b[i].fonction);
          fpurge (stdin);
     
          gotoxy (X_MENU, Y_MENU + 8);
          printf ("Date de recrutement jj/mm/aaaa:");
          scanf ("%d/%d/%d", &b[i].d.j, &b[i].d.m, &b[i].d.a);
     
          gotoxy (X_MENU, Y_MENU + 10);
          printf ("SALAIRE:");
          scanf ("%f", &b[i].s);
          fpurge (stdin);
     
          gotoxy (X_MENU, Y_MENU + 12);
          printf ("Voulez-vous continuer O/N :");
          scanf ("%c", &rep);
          fpurge (stdin);
     
          i++;
       }
       while (rep == 'o' || rep == 'O');
       (*n) += i;
    }
     
    void affichage (employe b[], int n)
    {
       int a, i;
     
       textbackground (CYAN);
       textcolor (BLACK);
       clrscr ();
     
       textcolor (LIGHTGRAY);
     
       gotoxy (X_MENU, Y_MENU);
       printf ("NOM");
       gotoxy (X_MENU + 10, Y_MENU);
       printf ("PRENOM");
       gotoxy (X_MENU + 25, Y_MENU);
       printf ("FONCTION");
       gotoxy (X_MENU + 40, Y_MENU);
       printf ("D. RECRUTEMENT");
       gotoxy (X_MENU + 60, Y_MENU);
       printf ("SALAIRE");
     
       for (i = 0, a = Y_MENU + 2; i < n; i++, a += 2)
       {
          gotoxy (X_MENU, a);
          cprintf ("%s", b[i].nom);
          gotoxy (X_MENU + 10, a);
          cprintf ("%s", b[i].prenom);
          gotoxy (X_MENU + 25, a);
          cprintf ("%s", b[i].fonction);
          gotoxy (X_MENU + 40, a);
          cprintf ("%d/%d/%d", b[i].d.j, b[i].d.m, b[i].d.a);
          gotoxy (X_MENU + 65, a);
          cprintf ("%f", b[i].s);
       }
     
       /* pause */
       gotoxy (X_CHOIX - 10, Y_CHOIX);
       cprintf ("<Enter> pour quitter");
       {
          char rep;
          scanf ("%c", &rep);
          if (rep!='\n')
             fpurge (stdin);
       }
     
    }
     
    char sousmenu (void)
    {
       char rep;
       clrscr ();
     
       gotoxy (X_MENU, Y_MENU + 2);
       cprintf ("a-date de recrutement");
     
       gotoxy (X_MENU, Y_MENU + 4);
       cprintf ("b-nom");
     
       gotoxy (X_CHOIX, Y_CHOIX);
       printf ("Tapez votre choix : ");
     
       scanf ("%c", &rep);
       fpurge (stdin);
     
       return rep;
    }
     
    void tri_nom (employe b[], int n)
    {
       int i, j;
       for (i = 0; i < n - 1; i++)
       {
          for (j = i + 1; j < n; j++)
          {
             if (strcmp (b[i].nom, b[j].nom) > 0)
             {
                employe x = b[i];
                b[i] = b[j];
                b[j] = x;
             }
          }
       }
    }
     
    int main (void)
    {
       employe b[80];
       int n, c, o = 1;
       do
       {
          c = menu ();
          switch (c)
          {
          case 1:
             remplissage (b, &n);
             break;
          case 2:
             switch (sousmenu ())
             {
             case 'a':
                tri_nom (b, n);
                affichage (b, n);
                break;
             case 'b':
                o = 1;
                break;
             }
             break;
          case 4:
             o = 0;
             break;
          }
       }
       while (o == 1);
       return 0;
    }
    J'arrive à quelque chose d'à peu près présentable (éviter les couleurs vives...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
      NOM       PRENOM         FONCTION       D. RECRUTEMENT      SALAIRE
     
      aaa       zzz            eee            1/2/3                    123.000000
     
      qqq       sss            ddd            2/3/4                    234.000000
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
                                                <Enter> pour quitter
    Mais les saisies ne sont absolument pas sécurisées. Je recommande l'usage exclusif de fgets() suivi de fclean() (code souvent publié sur ce forum) et de l'éventuelle fonction de conversion nécessaire.

    http://emmanuel-delahaye.developpez....tes.htm#saisie
    http://emmanuel-delahaye.developpez....s.htm#fichiers

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par phenix1988 Voir le message
    j'utilise le borlandc et le turboc
    Alors modifie la configuration pour voir tous les messages. Il n'y en aura pas autant qu'avec gcc, mais ce sera déjà mieux.

  10. #10
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    est ce que je peux savoir avec quoi vs compilez car je n'ai pas arrivé au même résultat que vous avec le turboc; la seule ptite différence c'est que la ligne:
    NOM PRENOM FONCTION D. RECRUTEMENT SALAIRE
    s'affiche.
    j'ai un autre prb avec le borland c'est que chaque fois que je compile j reçois le message d'erreur suivant:
    "unable to create output file 'C:\borlandc\bin\emm.obj'"

  11. #11
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Alors modifie la configuration pour voir tous les messages. Il n'y en aura pas autant qu'avec gcc, mais ce sera déjà mieux.
    quelle configuration????
    c'est quoi gcc??

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par phenix1988 Voir le message
    quelle configuration????
    c'est quoi gcc??
    J'utilise Code::Blocks donc le compilateur par défaut est MinGW, un portage simplifié de gcc pour Windows. (Min Gcc for Windows)

    gcc est le Gnu C Compiler, c'est à dire le compilateur qui a été écrit pour compiler le noyau GNU/Linux, les modules et n'importe quelle application. C'est une sorte de 'clone' de cc (C Compiler), le compilateur C du monde Unix.

    Gnu signifie Gnu is Not Unix, c'est à dire en gros, GNU/Linux.

  13. #13
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par phenix1988 Voir le message
    est ce que je peux savoir avec quoi vs compilez car je n'ai pas arrivé au même résultat que vous avec le turboc; la seule ptite différence c'est que la ligne:
    NOM PRENOM FONCTION D. RECRUTEMENT SALAIRE
    s'affiche.
    Je vérifie avec Borland C++ 3.1.

    Au moment de la saisie du salaire, je tombe sur ce vieux problème des compilateurs Borland :

    http://emmanuel-delahaye.developpez....es.htm#borland

    Après correction, ça ne fonction ne pas bien. J'ai une sortie brutale du programme, sans explications. Je me demande si Borland C++ 3.1 fonctionne correctement sous XP... Je ne l'utilise plus sauf cas exceptionnels comme celui-ci.

    Si tu es sous Windows XP ou plus, je te conseille d'utiliser un environnement de développement plus actuel comme Code::Blocks.
    j'ai un autre prb avec le borland c'est que chaque fois que je compile j reçois le message d'erreur suivant:
    "unable to create output file 'C:\borlandc\bin\emm.obj'"
    C'est curieux. Je suggère une réinstallation de Borland C et surtout que les projets soient bien mis ailleurs que dans 'C:\borlandc\'.

  14. #14
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    moi aussi si je déclare directement le salaire comme vs m'avez suggéré j'ai une sortie brutale du prg
    mais en déclarant comme ça:

    salaire=b[i].s;
    gotoxy(5,25); printf("SALAIRE:"); scanf("%f",&salaire); ...

    je ne trouve aucun problème...

    mais mon problème persiste pas d'affichage
    mais cmt vs m'avez déja dit que vs avez affiché après vs dites que ça sort brutalement!!

    en classe on ne travaille qu'avec le borland et le turbo on n'a jamais travaillé avec le code blocks ou le gcc

  15. #15
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par phenix1988 Voir le message
    mais mon problème persiste pas d'affichage
    mais cmt vs m'avez déja dit que vs avez affiché après vs dites que ça sort brutalement!!

    en classe on ne travaille qu'avec le borland et le turbo on n'a jamais travaillé avec le code blocks ou le gcc
    Je confirme qu'avec Borland C++ 3.1 sous Windows XP, ça sort brutalement, alors qu'avec Code::Blocks dans les même conditions, ça fonctionne bien.

    Tu es dans quelle classe ? Quelle école ?

  16. #16
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Je confirme qu'avec Borland C++ 3.1 sous Windows XP, ça sort brutalement, alors qu'avec Code::Blocks dans les même conditions, ça fonctionne bien.
    je sais moi aussi avec borland sous xp ça sort brutalement mais comme je vs l'ai déjà dit en passant par une variable salaire:
    salaire=b[i].s;
    gotoxy(5,25); printf("SALAIRE:"); scanf("%f",&salaire); ...
    je ne trouve aucun problème

    c'est pas ça le problème le problème c'est même si j'enlève complètement le salaire du remplissage et d'affichage l'affichage ne fonctionne pas

    je suis en 2ème année Ingénieurie Informatique et Réseau de l'école Marocaine des Sciences de l'Ingénieur EMSI

  17. #17
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par phenix1988 Voir le message
    je sais moi aussi avec borland sous xp ça sort brutalement mais comme je vs l'ai déjà dit en passant par une variable salaire:
    salaire=b[i].s;
    gotoxy(5,25); printf("SALAIRE:"); scanf("%f",&salaire); ...
    je ne trouve aucun problème
    Oui, c'est un bug connu de Borland dont j'ai déjà donné une correction.

    Rappel : http://emmanuel-delahaye.developpez....es.htm#borland
    c'est pas ça le problème le problème c'est même si j'enlève complètement le salaire du remplissage et d'affichage l'affichage ne fonctionne pas
    Tu en es où ? Quel est le code actuel qui ne fonctionne pas ?
    je suis en 2ème année Ingénieurie Informatique et Réseau de l'école Marocaine des Sciences de l'Ingénieur EMSI
    Tu devrais leur conseiller de laisser tomber Borland C++ 3.1 (payant) au profit de Code::Blocks (gratuit). Cet outil ancien a eu son heure de gloire, mais il n'est plus adapté.

  18. #18
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    les deux codes
    je pense qu'un simple ptit prg comme le mien devrait aussi fonctionner avec borland nn??

  19. #19
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par phenix1988 Voir le message
    je pense qu'un simple ptit prg comme le mien devrait aussi fonctionner avec borland nn??
    Oui, mais pas sous XP. Il y a trop de choses à émuler et visiblement ça crée des différences de comportement.

  20. #20
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 187
    Par défaut
    pff
    de toute façon merci pour votre aide

Discussions similaires

  1. Problème d'affichage
    Par mustang-gx dans le forum Bases de données
    Réponses: 8
    Dernier message: 26/01/2005, 22h54
  2. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 16h59
  3. [Kylix] problème d'affichage
    Par scalvi dans le forum EDI
    Réponses: 1
    Dernier message: 18/06/2003, 10h07
  4. Réponses: 1
    Dernier message: 06/03/2003, 11h57
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo