Bonsoir,

voici mon problème, je souhaite pour l'instant créer un fichier "ordinateur" dans lequel je souhaite simplement ajouter toutes les caractéristiques d'un pc (voir ma structure de début de programme pour plus de détails). Çà c'est donc ma fonction saisie. Ensuite je souhaite créér une deuxieme fonction appelée "saisieannee" qui triera le fichier "ordinateur" en fonction de l'année d'achat de chaque machine et qui rangera chaque année dans un fichier spécifique a cette année.

Pour l'instant je n'en suis pas encore là. Ma fonction de saisie fonctionne correctement, mais ce n'est pas le cas de saisieannee. Dans l'état actuel du programme, il n'y a encore aucun tri d'effectué, il s'agit simplement de recopier les caracteristiques d'un pc dans un autre fichier).

J'ai rentré ceci dans mon executable:
type processeur: intel
vitesse proc: 2Ghz
taille ram: 2048Mo
taille du disque dur: 250Go
annee d'achat: 2008

Et voici ce qui a transmis au deuxieme fichier:
type processeur: ¸ bw/Yw?ú‡
vitesse proc:
taille ram: µ$Zw*xðþÿÿÿ/Ywz@
taille du disque dur: ¸ bw81@
annee d'achat:


Voici mon 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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FFL fflush(stdin)
 
 
struct ordinateur
{
    char type_proc[20];
    char vitesse_proc[20];
    char ram[20];
    char HD[20];
    char annee[20];
};
 
struct carnet
{
    struct ordinateur nbpc[50];
    int compteur;
};
 
 
void saisie(FILE*fichier,FILE*fichieran,struct carnet pc);
void saisieannee(FILE*fichier, FILE*fichieran, struct carnet pc);
 
 
 
int main(void)
{
    FILE*fichier=NULL;
    FILE*fichieran=NULL;
    struct carnet pc;
    pc.compteur=0;
    saisie(fichier,fichieran,pc);
    saisieannee(fichier,fichieran,pc);
 
}
 
void saisie(FILE*fichier,FILE*fichieran, struct carnet pc)
{
    fichier=fopen("ordinateur.lst","a");
    if (fichier==NULL)
        puts("probleme a l'ouverture du fichier");
    else
    {
        FFL;
        puts("quelle est le type du processeur");
        FFL;
        gets(pc.nbpc[pc.compteur].type_proc);
        fprintf(fichier, "type processeur: %s\n", pc.nbpc[pc.compteur].type_proc);
        puts("quelle est la vitesse du processeur");
        FFL;
        gets(pc.nbpc[pc.compteur].vitesse_proc);
        fprintf(fichier, "vitesse proc: %s\n", pc.nbpc[pc.compteur].vitesse_proc);
        FFL;
        puts("quelle est la taille de la memoire vive");
        FFL;
        gets(pc.nbpc[pc.compteur].ram);
        fprintf(fichier, "taille ram: %s\n", pc.nbpc[pc.compteur].ram);
        FFL;
        puts("quelle est la taille du disque dur");
        FFL;
        gets(pc.nbpc[pc.compteur].HD);
        fprintf(fichier, "taille du disque dur: %s\n", pc.nbpc[pc.compteur].HD);
        FFL;
        puts("quelle est l'annee d'achat");
        FFL;
        gets(pc.nbpc[pc.compteur].annee);
        fprintf(fichier, "annee d'achat: %s\n", pc.nbpc[pc.compteur].annee);
        fclose(fichier);
        pc.compteur++;
 
 
    }
 
}
 
void saisieannee(FILE*fichier,FILE*fichieran,struct carnet pc)
{
    int i=0;
    char year[4];
    FFL;
    puts("rentrez l'annee que vous voulez");
    gets(year);
 
    {
        //if(strcmp(year,pc.annee)==0)
        {
 
            fichier=fopen("ordinateur.lst","r");
            fichieran=fopen("ordinateuran.lst","w");
 
            fprintf(fichieran, "type processeur: %s\n", pc.nbpc[pc.compteur-1].type_proc);
            fprintf(fichieran, "vitesse proc: %s\n", pc.nbpc[pc.compteur-1].vitesse_proc);
            fprintf(fichieran, "taille ram: %s\n", pc.nbpc[pc.compteur-1].ram);
            fprintf(fichieran, "taille du disque dur: %s\n", pc.nbpc[pc.compteur-1].HD);
            fprintf(fichieran, "annee d'achat: %s\n", pc.nbpc[pc.compteur-1].annee);
 
            fclose(fichier);
            fclose(fichieran);
        }
        //  i++;
    }
}
En espérant une aide de votre part,
bonne soirée