
Originariamente inviata da
oregon
Se deve contenere un carattere allora deve essere un char e non un puntatore. Quindi
char C;
e non
char *C;
Quindi non devi usare %s ma %c
Ciao, facendo come dici tu funziona, mi ero anche dimenticato dell' &:
codice:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
int hh, mm, ss;
char C;
int user;
}accesso;
void carica_dati(char filename[]){
FILE *f;
char buffer[128];
f = fopen(filename, "r");
if(f==NULL)
{
perror("Errore apertura file");
exit(1);
}
else
{
int z = 0;
while((fgets(buffer, sizeof(buffer), f))!=NULL)
z++;
accesso db[z];
int d;
for(d=0; d<z; d++) {
sscanf(buffer, "%d:%d:%d %c %d", &db[d].hh, &db[d].mm, &db[d].ss, &db[d].C, &db[d].user);
/* printf("%d:%d:%d %c %d\n", db[d].hh, db[d].mm, db[d].ss, db[d].C, db[d].user); */
}
fclose(f);
}
}
int main(int argc, char *argv[])
{
carica_dati(argv[1]);
return 0;
}
Quindi ora ho la mia bella struttura caricata con i dati e dovrei cercare di suddividere gli ingressi con le uscite per poi passare alla richiesta c)
Ho paura che mi farò risentire molto presto