как я читаю переменную из файла? - PullRequest
0 голосов
/ 09 апреля 2020

Это часть добавления нового клиента. Проблема в том, что когда я добавляю 2 клиента в качестве примера и закрываю программу, когда я снова открываю ее, идентификатор будет 1. Я хочу знать, как я могу прочитать последний идентификатор из файла.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define nombre_de_clients 50
client cl;
client c[nombre_de_clients];
typedef struct date{
    int j,m,a;
} date;
typedef struct client{
    int id;
    char nom [30];
    char prenom [30];
    date date_nais;
    char  adresse[30] ;
    char tel [30];
} client;

void ajouter(){
    FILE *f;
    f=fopen("client.txt","a+");
    printf("donnez le nom \n");
    scanf("%s",&c[cl.id].nom);
    printf("donnez le prenom:");
    scanf("%s",&c[cl.id].prenom);
    printf("donnez l'adresse:");
    scanf("%s",&c[cl.id].adresse);
    printf("donnez num de tel:");
    scanf("%s",&c[cl.id].tel);
    printf("donnez la date de naissance jj mm aaaa:");
    scanf("%d %d %d",&c[cl.id].date_nais.j,&c[cl.id].date_nais.m,&c[cl.id].date_nais.a);
    fprintf(f,"%s\n%s\n%s\n%s\n%d/%d/%d\n%d",c[cl.id].nom,c[cl.id].prenom,c[cl.id].adresse,c[cl.id].tel,c[cl.id].date_nais.j,c[cl.id].date_nais.m,c[cl.id].date_nais.a,cl.id);
    fclose(f);
    cl.id++;
    printf("sucess\n");
}

int main(){
    int a;
    cl.id=1;
    do {
        printf("                    *------------- menu --------------*\n");
        printf("                    |  ajouter un client   :1         |\n");
        printf("                    |  supprimer un client :2         |\n");
        printf("                    |  rechercher un client:3         |\n");
        printf("                    |  modifer un client   :4         |\n");
        printf("                    |  gestion de comptes  :5         |\n");
        printf("                    |  quitter le programme:6         |\n");
        printf("                    *---------------------------------*\n");
        scanf("%d",&a);
        switch(a){
        case(1):

        if(cl.id>nombre_de_clients){
            printf("nombre de client maximal\n");break;}
            ajouter();break;
        }
    }while(a!=6);
    return 0;
}

Я все еще начинающий. Я надеюсь, что вы понимаете мой вопрос, и вы можете мне помочь. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...