## MY STRUCT ##
typedef struct clientes{
int cod_cliente;
char name[100];
char country[100];
char city[100];
char email[100];
int nif;
char n_passporte[50];
char n_carta_conducao[50];
char telefone[50];
}CLIENTE;
typedef struct Elem{
VEICULO info_veiculo;
CLIENTE info_cliente;
ALUGADO info_alugado;
struct Elem *seguinte;
}ELEMENTO;
## FUNCTIONS ##
int saveBinaryCliente(ELEMENTO *iniLista){
ELEMENTO *aux = NULL;
FILE *fp = NULL;
int res=0;
fp = fopen("clientes.dat", "wb");
if(fp == NULL){
printf("Erro ao abrir o ficheiro clientes!\n");
return -1;
}
for(aux=iniLista; aux!=NULL; aux=aux->seguinte){
/*
printf("%i %s %s %s %i %s %s %s %s\n", aux->info_cliente.cod_cliente, aux->info_cliente.nome, aux->info_cliente.pais, aux->info_cliente.cidade, aux->info_cliente.nif, aux->info_cliente.n_passporte, aux->info_cliente.n_carta_conducao, aux->info_cliente.email, aux->info_cliente.telefone);
*/
接收每个参数,直到此printf
res = fwrite(aux, sizeof(CLIENTE), 1, fp);
}
fclose(fp);
printf("Saved %i register clientes!\n", res);
return 0;
}
int readDataCliente(ELEMENTO **iniLista){
CLIENTE aux;
int res=0;
FILE *fp = NULL;
fp = fopen("clientes.dat", "rb");
if(fp == NULL){
printf("Error reading file clientes!\n");
return -1;
}
while (!feof(fp)){
res = fread(&aux, sizeof(CLIENTE), 1, fp);
if (res){
inserirCliente(&(*iniLista), aux);
}
}
fclose(fp);
return 0;
}
## OUTPUT ##
在关闭1个客户端之前的列表
1 nuno portugal porto 23421342 ASDFA0942 ASDF-434 ssss@hotmail.com +351093856273
**AFTER CLOSING PROGRAM AND SAVE TO BINARY FILE**
*****************************************************
* MENU CLIENTES *
*****************************************************
* *
* 1 - INSERT NEW CLIENTE *
* 2 - CHANGE INFO CLIENTE *
* 3 - LIST CLIENTES *
*****************************************************
Choose your CHOICE: 3
0 0
0 0
奇怪的是......所有人似乎都在工作。 Dunno为什么现在不工作,当我不插入客户端并读取它时它也会保存。我一直在戳我的头,所以我决定请你们帮忙,谢谢。