Bonjour, je vous explique mon petit problème, (avant de faire les conditions if pour les différents cas dans mon algo de tri par age )

j'ai voulu testé la faisabilité technique (dans le code ci-dessous) le prog nous demande des infos qu'on tape puis ils sont enregistrées et affichées par la même occasion

j'ai voulu écrire les infos,non pas à la fin du fichier mais au début alors j'ai opté pour la fonction rewind() qui n'a pas fonctionné alors j'ai testé avec fseek(fichier,0,SEEK_SET) et la non plus ca ne marche pas

je me suis dits que c'était du peut-être mode d'écriture "a" ou "a+" qui ajoute les infos à la fin du fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
FILE *fichier = fopen("doc.txt","a+");
j'ai testé avec les autres différents modes ,ca n'a rien donné , "r+" réagit comme "w+" sauf qu'elle n’écrase que l’équivalent des données saisies.

si quelqu’un peut m'aider je suis preneur

merci d'avance

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include "fun.h"
#define TAILLE_MAX 1000
#define TAILLE_STD 100
#define TAILLE_MOY 500
#define TAILLE_TEST 1
infos personne[TAILLE_STD]={0};
int age[TAILLE_STD]={0};
int main()
{
    setlocale(LC_CTYPE,"");
 
    int i,n;
    nat nation[TAILLE_STD];
    char chaine_for_display[TAILLE_MAX]={0};
    FILE *fichier = fopen("doc.txt","a+");
 
    if (fichier != NULL)
    {
        for (i=0;i<TAILLE_TEST;i++)
        {
            printf("Candidat N°%d\n",i);
            printf("NOM:");
            fgets(personne[i].nom, sizeof personne[i].nom,stdin);
            clean(personne[i].nom);
            printf("PRENOM:");
            fgets(personne[i].prenom, sizeof personne[i].prenom,stdin);
            clean(personne[i].prenom);
            printf("ADRESSE:");
            fgets(personne[i].adresse, sizeof personne[i].adresse,stdin);
            clean(personne[i].adresse);
            printf("AGE:");
            scanf("%d",&age[i]);
            printf("Choix de la nationalité Rapplons que \n1=FRANÇAIS\n2=BELGE\n3=AMERICAIN\n");
            printf("NATIONALITE:");
            scanf("%d",&nation[i]);
            purge();
            system("CLS");
            rewind(fichier); /*fseek(fichier,0,SEEK_SET);*/
 
            fprintf(fichier,"NOM COMPLET:%s %s,agé(e) de %d ans et résidant au %s",personne[i].nom,personne[i].prenom,age[i],personne[i].adresse);
            switch(nation[i])
            {
            case 1:
                fputs(",de nationalité Française\n",fichier);
                break;
            case 2:
                fputs(",de nationalité Belge\n",fichier);
                break;
            case 3:
                fputs(",de nationalité Americaine\n",fichier);
                break;
            default:
                fputs(",la nationalité demeure inconnue\n",fichier);
            }
        }
        fclose(fichier);
    }
 
    fichier = fopen("doc.txt","r");
    if (fichier != NULL)
    {
        while (fgets(chaine_for_display,TAILLE_MAX,fichier)!= NULL)
        {
            printf("%s",chaine_for_display);
        }   fclose(fichier);
 
    }
 
    return 0;
}