Это часть добавления нового клиента. Проблема в том, что когда я добавляю 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;
}
Я все еще начинающий. Я надеюсь, что вы понимаете мой вопрос, и вы можете мне помочь. Спасибо.