Buonasera a tutti ragazzi ho un problema. Dovrei leggere da file tutte le variabili che vedete nella struttura cliente, praticamente quando vado a stampare mi accorgo che memorizza tutti i dati in cognome? Cosa sbaglio? Sicuramente mi sta sfuggendo qualche cavolata.
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define fflush(stdin) while ((getchar()) != '\n')
struct cliente_s{
char cognome[20];
char nome[20];
char cod_fis[16];
char email[20];
char num_conto[10];
char user_name[10];
char pass[10];
struct cliente_s *next;
};
typedef struct cliente_s cliente;
cliente *acquisisci(FILE *file, cliente *head){
printf("Sono nella funzione");
file=fopen("clienti.txt","r");
cliente *el;
el=(cliente*)malloc(sizeof(cliente));
while((fscanf(file,"%20c %20c %16c %20c %10c %10c %10c\n",el->cognome,el->nome,el->cod_fis,el->email,el->num_conto,el->user_name,el->pass)!=EOF)){
// printf("%s",el->cognome);
if (head==NULL){
head=el;
head->next=NULL;
el=(cliente*)malloc(sizeof(cliente));
}else{
el->next=head;
head=el;
el=(cliente*)malloc(sizeof(cliente));
}
}
return head;
}
typedef struct cliente_s cliente;
int main()
{
int scelta;
cliente *head_clienti=NULL,*el=NULL;
FILE *clienti;
do{
printf("1)Acquisci lista clienti da file");
printf("2)Stampa lista clienti: ");
printf("\nDigita la tua scelta: ");
scanf("%d",&scelta);
fflush(stdin);
switch(scelta){
case 1:
printf("Sono nel case");
head_clienti=acquisisci(clienti,head_clienti);
break;
case 2:
el=head_clienti;
while(el->next!=NULL){
printf("%s",el->cognome);
el=el->next;
}
break;
}
}while(scelta!=0);
}