|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2008
Città: Firenze
Messaggi: 150
|
[C] Non mi legge la prima parola del file
Salve a tutti sto creando un progetto universitario che consta in una rubrica telefonica.
Praticamente ho qua due funzioni, una che aggiunge le voci in rubrica (cognome, nome e telefono) ed un'altra che cerca un cognome e nome preciso per poi visualizzare l'intera voce. Sono fermo nella creazione della funzione che ricerca i nomi nella rubrica ma il problema è il seguente: Per il momento faccio scrivere sullo stdout la voce della prima persona soltanto che mi da in output lo spazio tra il cognome e il nome e poi mi da il nome e il numero. In poche parole mi salta la fscanf del cognome ossia la prima parola della riga. Vi posto i pezzetti di codice che interessano: //Aggiungere record in rubrica int addContact(){ FILE*f; char cognome[15], nome[15], telefono[15]; f=fopen("rubrica.txt","a"); printf("COGNOME: "); scanf("%s",cognome); printf("NOME: "); scanf("%s",nome); printf("TELEFONO: "); scanf("%s",telefono); fprintf(f,"%s %s %s\n",cognome,nome,telefono); fclose(f); return 0; } //Trovare contatto/i int searchContact(){ FILE*f; nomeT[15], cognomeT[30], telefonoT[10]; f=fopen("rubrica.txt","r"); fscanf(f,"%s",cognomeT); fscanf(f,"%s",nomeT); fscanf(f,"%s",telefonoT); printf("%s %s %s",cognomeT,nomeT,telefonoT); fclose(f); return 0; } Ho fatto due prove: 1) Inserisco una nuova voce tramite il comando addContact() e poi effettuo la ricerca con searchContact() e mi da l'errore in questione; 2)Inserisco a mano nel file rubrica.txt la voce della persona ed effettuo la ricerca con searchContact() ed ecco che magicamente mi appaiono tutte e tre le voci (cognome, nome e telefono). Cioè la fscanf comincia a leggere dalla prima parola della riga. Da questo presumo che quindi è una problema della funzione addContact(). Secondo voi quale potrebbe essere il problema??? Scusate il testo lungo ma mi volevo spiegare bene! Grazie mille
__________________
ACER ASPIRE 5920G - INTEL CORE2 DUO T7700 - NVIDIA GEFORCE 8600GT - 2GB RAM DDR2 - 250GB HDD - HD DVD |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2008
Città: Roma
Messaggi: 542
|
Come ti è stato detto in
http://forum.html.it/forum/showthrea...readid=1508569 nella funzione la linea nomeT[15], cognomeT[30], telefonoT[10]; non ha senso. E probabilmente il codice non viene neanche compilato. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jan 2008
Città: Firenze
Messaggi: 150
|
Ok allora continuo di li la discussione. Scusate il "doppio" post!
__________________
ACER ASPIRE 5920G - INTEL CORE2 DUO T7700 - NVIDIA GEFORCE 8600GT - 2GB RAM DDR2 - 250GB HDD - HD DVD |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:21.