08/02/10 10:48
wicca89
Salve ho questa traccia:
Sia dato un file testo biblioteca.txt. Le informazioni sono così strutturate: Il primo rigo contiene il nome di un libro e dal numero di n copie del libro possedute dalla biblioteca. Seguono esattamente n righe contenente il codice identificativo della posizione di ogni copia seguito dalla sua disponibilità al prestito. Scrivere una programma che dato in input un array di caratteri contenente il nome di un libro, stampi in output il codice di una qualisiasi copia disponibile o un messaggio di errore.
Esempio contenuto biblioteca.txt:
Analisi I
15000 NO
7658 SI
Geometria
9360 SI
782 SI
Programmare in c
6364 NO
11820 SI
Intelligenza artificiale
10933 NO
4563 NO
135 NO
Input:
"Programmare in c"
output:
Disponibile: Codice 11820
Input:
Intelligenza artificiale
output:
Non disponibile.
Io ho fatto questo:
Mi stampa se ci sono i libri ma solo si senza in numero del codice cioè:
Input:
Geometria
Output:
Geometria
Si
Come faccio a fargli stampare anche il numero e anche se sono presenti altri tomi(per esempio Geometria ha 2 SI ma ne stampa uno solo).:hail:
Grazie
Sia dato un file testo biblioteca.txt. Le informazioni sono così strutturate: Il primo rigo contiene il nome di un libro e dal numero di n copie del libro possedute dalla biblioteca. Seguono esattamente n righe contenente il codice identificativo della posizione di ogni copia seguito dalla sua disponibilità al prestito. Scrivere una programma che dato in input un array di caratteri contenente il nome di un libro, stampi in output il codice di una qualisiasi copia disponibile o un messaggio di errore.
Esempio contenuto biblioteca.txt:
Analisi I
15000 NO
7658 SI
Geometria
9360 SI
782 SI
Programmare in c
6364 NO
11820 SI
Intelligenza artificiale
10933 NO
4563 NO
135 NO
Input:
"Programmare in c"
output:
Disponibile: Codice 11820
Input:
Intelligenza artificiale
output:
Non disponibile.
Io ho fatto questo:
#include <stdio.h> #include <string.h> int main () { FILE *fp; char linea[256]; char *divlinea, *space; char curremitt[256], maxemitt[256], maxtipo[256]; char currspett, maxspett=0; char libro[256], forario; int spo=10; printf("Dammi il nome del tomo da cercare: "); gets(libro); fp=fopen("biblio.txt","r"); if(fp!=NULL) { while(fgets(linea, 256, fp)!=NULL) if(strstr(linea,libro)!=NULL) { printf("%s",linea); fseek(fp,spo,SEEK_CUR); fgets(linea, 256, fp); divlinea = (strstr(linea, "SI")); printf("%s",divlinea); }} // else // printf("Impossibile leggere il file\n"); fclose(fp); system("PAUSE"); return 0; }
Mi stampa se ci sono i libri ma solo si senza in numero del codice cioè:
Input:
Geometria
Output:
Geometria
Si
Come faccio a fargli stampare anche il numero e anche se sono presenti altri tomi(per esempio Geometria ha 2 SI ma ne stampa uno solo).:hail:
Grazie
aaa