domi90 (Normal User)
Rookie
Messaggi: 22
Iscritto: 07/05/2010
|
l'esercizio chiede :una biblioteca memorizza i libri richiesti in lettura in un file in cui sono riportati nome e cognome del richiedente,autore e titolo del libro e il codice dell'argomento compreso fra 1 e 25.scrivere un programma che crei un tale file e memorizzi i dati relativi ad alcuni libri in prestito...(fino qua nessuna problema)..
poi chiede di creare una procedura che per ognuno dei 25 argomenti stampi la lista dei libri che sono stati richiesti e il loro numero totale
io la procedura la faccio cosi(posto solo le strutture e la procedura stessa)ma da problemi quando la uso..
struct biblio{
char nome[10];
char cognome[10];
char autore[20];
char titolo[20];
int codice;};
struct biblio per;
char*lista[25];
FILE*fp;
void arg(void){
int i,n;
fp=fopen("Biblioteca","r");
for(;{
n=fread(&per,sizeof(struct biblio),1,fp);
if(n==0){
fclose(fp);
break;}
else
strcpy(lista[per.codice],per.titolo);}
for(i=1;i<25;i++)
printf("Argomento %d=%s\n",i,lista);
}
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6380
Iscritto: 03/01/2010
|
Dire che da' problemi non aiuta a risponderti.
E il codice va inserito tra i tag code altrimenti non si puo' leggere.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
domi90 (Normal User)
Rookie
Messaggi: 22
Iscritto: 07/05/2010
|
non da problemi in compilazione,semplicemente quando la chiamo dal main
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6380
Iscritto: 03/01/2010
|
Postato originariamente da domi90:
non da problemi in compilazione,semplicemente quando la chiamo dal main ... |
... cosa succede?
Perchè si devono "strappare" le informazioni ?
In ogni caso, questa riga
char *lista[25];
secondo te, cosa fa?
Ultima modifica effettuata da nessuno il 30/05/2010 alle 9:46
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
domi90 (Normal User)
Rookie
Messaggi: 22
Iscritto: 07/05/2010
|
la mia idea era di copiare la stringa li dentro come richiede il testo del problema...l'ho gia detto che era sbagliata....cmq quando la chiamo blocca il programma....
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6380
Iscritto: 03/01/2010
|
Beh ... è ovvio perchè
char *lista[25];
è un vettore di 25 puntatori, non una stringa.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
domi90 (Normal User)
Rookie
Messaggi: 22
Iscritto: 07/05/2010
|
Postato originariamente da domi90:
é un array di 25 puntatori a carattere...
la mia idea era di copiare la stringa li dentro nella posizione dell'argomento come richiede il testo del problema.....cmq quando la chiamo blocca l'esecuzione del programma.... |
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6380
Iscritto: 03/01/2010
|
Postato originariamente da domi90:
é un array di 25 puntatori a carattere... |
Non mi parte tu l'abbia mai scritto ...
Ma è proprio questo il problema. Quello è un array di 25 puntatori che non puntano a nulla. Se vuoi usare un array di puntatori, devi inizializzarli facendoli puntare ad una zona di memoria allocata con la malloc prima di usarli.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
domi90 (Normal User)
Rookie
Messaggi: 22
Iscritto: 07/05/2010
|
grazie dell'aiuto ma non mi funziona lo stesso...
|
|