|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2008
Città: Firenze
Messaggi: 150
|
[C]Problema con input da tastiera e scrittura su file .txt
Salve a tutti,
devo creare una rubrica telefonica per un progetto e non riesco a fare la seguente operazione: inserisco tramite una scanf una stringa contenente (cognome, nome e telefono) e questa stringa deve essere ricopiata su un file. Il problema è il seguente, la stringa viene copiata sul file ma senza gli spazi. Posto il pezzettino di codice interessato: int addContact() { FILE *stream; char contact[100]; printf("Inserisci cognome, nome e numero di telefono:\n"); scanf("%s",contact); //ho provato anche con "%s[^\n]" ma non va stream=fopen("rubrica.txt","a"); fprintf(stream,"%s",contact); fclose(stream); return 0; } Quale sarebbe il problema secondo voi?
__________________
ACER ASPIRE 5920G - INTEL CORE2 DUO T7700 - NVIDIA GEFORCE 8600GT - 2GB RAM DDR2 - 250GB HDD - HD DVD |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
Il problema è che scanf() legge fino allo spazio bianco quindi se vuoi prendere tre stringhe intervallate da un numero qualunque di spazi devi fare qualcosa del genere:
Codice:
char nome[DIM];
char cognome[DIM];
char tel[DIM];
printf("Inserisci cognome, nome e numero di telefono:\n");
scanf("%s %s %s", nome, cognome, tel);
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jan 2008
Città: Firenze
Messaggi: 150
|
Ti ringrazio vivamente, l'ho appena scritto mezz'ora fa esattamente come la tua
__________________
ACER ASPIRE 5920G - INTEL CORE2 DUO T7700 - NVIDIA GEFORCE 8600GT - 2GB RAM DDR2 - 250GB HDD - HD DVD |
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
Quote:
Codice:
char buffer[DIM]; fgets(buffer, DIM-1, stdin);
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield Ultima modifica di Mettiu_ : 19-05-2012 alle 16:39. |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jan 2008
Città: Firenze
Messaggi: 150
|
Non so perchè ma non mi va, nel senso che non mi fa immettere i dati in input da tastiera. Vabbè cmq ho risolto, per quello che devo fare io va bene anche una scanf(). Ti ringrazio per la disponibilità!
__________________
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: 11:14.




















