Bonjour a tout le monde. J'ai un énorme problème avec mon code.
mon programme a pour but de récupérer les informations de l'utilisateur pour aller les placer dans un fichier et après de récupérer les informations placées dans le fichier pour les mettre dans une fenêtre..Mais malheureusement j ai des problèmes avec mes deux fonctions c'est a dire "Mettrefichier" et "Lirefichier".si quelqu'un pourrait m'aider je lui serai vraiment reconnaissant .
voici le 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
#include <stdlib.h>
#include <gtk/gtk.h>
#include <string.h>
 
typedef struct
{
    const gchar *nom;
    const gchar *prenom;
    const gchar *telephone;
}personne;
 
    void mettreFichier(GtkWidget *widget,gpointer data);
    void LireFichier(GtkWidget *widget,gpointer data);
    static GtkWidget *pLabel1;
    static GtkWidget  *pEntry1;
    static GtkWidget *pLabel2;
    static GtkWidget  *pEntry2;
    static GtkWidget *pLabel3;
    static GtkWidget  *pEntry3;
    static personne Client;
 
FILE *fichier;
int main(int argc,char **argv)
{
    GtkWidget *pWindow;
    GtkWidget *pVBox;
 
    GtkWidget *Valider;
    GtkWidget *AfficherListe;
 
    gtk_init(&argc,&argc);
 
    pWindow =gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_position(GTK_WINDOW(pWindow),GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(pWindow),320,200);
    gtk_window_set_title(GTK_WINDOW(pWindow),"contact telephonique");
 
    g_signal_connect(G_OBJECT(pWindow),"destroy",G_CALLBACK(gtk_main_quit),NULL);
 
    pVBox =gtk_vbox_new(FALSE,0);
    gtk_container_add(GTK_CONTAINER(pWindow),pVBox);
 
    pLabel1 = gtk_label_new("Nom");
    gtk_box_pack_start(GTK_BOX(pVBox),pLabel1,TRUE,FALSE,0);
    pEntry1 = gtk_entry_new();
    gtk_box_pack_start(GTK_BOX(pVBox),pEntry1,TRUE,FALSE,0);
 
    pLabel2 = gtk_label_new("Prenom");
    gtk_box_pack_start(GTK_BOX(pVBox),pLabel2,TRUE,FALSE,0);
    pEntry2 = gtk_entry_new();
    gtk_box_pack_start(GTK_BOX(pVBox),pEntry2,TRUE,FALSE,0);
 
    pLabel3 = gtk_label_new("Telephone");
    gtk_box_pack_start(GTK_BOX(pVBox),pLabel3,TRUE,FALSE,0);
    pEntry3 = gtk_entry_new();
    gtk_box_pack_start(GTK_BOX(pVBox),pEntry3,TRUE,FALSE,0);
 
    Valider =gtk_button_new_with_label("Valider");
    gtk_box_pack_start(GTK_BOX(pVBox),Valider,TRUE,FALSE,0);
    AfficherListe =gtk_button_new_with_label("AfficherListe");
    gtk_box_pack_start(GTK_BOX(pVBox),AfficherListe,TRUE,FALSE,0);
 
    g_signal_connect(G_OBJECT(Valider),"clicked",G_CALLBACK(mettreFichier),NULL);
    g_signal_connect(G_OBJECT(AfficherListe),"clicked",G_CALLBACK(LireFichier),NULL);
    gtk_widget_show_all(pWindow);
    gtk_main();
 
 
 
    return EXIT_SUCCESS;
 
 
}
void mettreFichier(GtkWidget *widget,gpointer data)
{
 
    Client.nom =gtk_entry_get_text(GTK_ENTRY(pEntry1));
    Client.prenom =gtk_entry_get_text(GTK_ENTRY(pEntry2));
    Client.telephone =gtk_entry_get_text(GTK_ENTRY(pEntry3));
    fichier =fopen("monfichier.bin","ab+");
    if(fichier!=NULL)
    {
 
        fwrite(&Client,sizeof(Client),1,fichier);
        gtk_main_quit();
        fclose(fichier);
    }
}
void LireFichier(GtkWidget *widget,gpointer data)
{
    GtkWidget *fenetre;
    GtkWidget *pVBox;
    GtkWidget *OK1;
    GtkWidget *pLabell1;
    gchar *nom;
    GtkWidget *pLabell2;
    GtkWidget *pLabell3;
    GtkWidget *pLabell4;
 
    fenetre =gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_position(GTK_WINDOW(fenetre),GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(fenetre),320,200);
    gtk_window_set_title(GTK_WINDOW(fenetre),"Liste des contact telephonique");
 
    g_signal_connect(G_OBJECT(fenetre),"destroy",G_CALLBACK(gtk_main_quit),NULL);
 
    pVBox =gtk_vbox_new(FALSE,0);
    gtk_container_add(GTK_CONTAINER(fenetre),pVBox);
 
    fichier = fopen("monfichier.bin" , "rb+");
    rewind(fichier);
 
    while(fread(&Client,sizeof(Client),1,fichier)!=NULL)
    {
 
            nom = g_strdup_printf("Nom: %s",Client.nom);
            pLabell1 = gtk_label_new(nom);
            gtk_box_pack_start(GTK_BOX(pVBox),pLabell1,TRUE,FALSE,0);
            g_free(nom);
    }
    fclose(fichier);
 
    OK1 =gtk_button_new_with_label("ok");
    gtk_box_pack_start(GTK_BOX(pVBox),OK1,TRUE,FALSE,0);
 
    g_signal_connect(G_OBJECT(OK1),"clicked",G_CALLBACK(gtk_main_quit),NULL);
    gtk_widget_show_all(fenetre);
    gtk_main();
}