Precedente :: Successivo |
Autore |
Messaggio |
Lokutus Eroe in grazia degli dei
Registrato: 08/09/05 21:18 Messaggi: 129
|
Inviato: 29 Giu 2006 16:50 Oggetto: * problemi con la scanf |
|
|
Salve!
ho un problemino col la scanf vorrei prendere da tastiera un stringa con uno spazio all'interno, tipo questa "asd fg"
ho provato con: scanf("%s", nome_stringa);
però così mi interpreta lo spazio come fine stringa e mi stampa solo "asd"
allora ho provato questo:
Codice: | int c;
for (c=0;T2[c]!='\0';c++)
{
scanf("%c", &T2[c]);
}
T2[c+1]='\0'; |
ma anche così quando vado a stampare mi stampa solo "asd"......
la stampa l'ho provata in entrambi i seguenti modi:
Codice: | printf("%s", T2);
for (c=0;T2[c]!='\0';c++)
{
printf("%c", T2[c]);
} |
esiste un modo per leggere da sdtin una stringa senza che questa venga tarpata nel caso contenga uno spazio? |
|
Top |
|
|
horus Macchinista
Registrato: 22/03/05 09:48 Messaggi: 2554 Residenza: Sirio e dintorni
|
Inviato: 30 Giu 2006 08:13 Oggetto: |
|
|
La scanf non può leggere gli spazi, o meglio, li considera come terminatori di riga e quindi tronca l'input.
La funzione gets dovrebbe essere quello che ti serve. |
|
Top |
|
|
Kaya Mortale devoto
Registrato: 24/09/05 17:17 Messaggi: 14
|
Inviato: 14 Set 2006 17:04 Oggetto: |
|
|
Forse sarò in ritardo ma ti dico la mia: mi pare che gets sia stata deprecata, o meglio, considerata potenzialmente pericolosa
prova con la Fgets |
|
Top |
|
|
horus Macchinista
Registrato: 22/03/05 09:48 Messaggi: 2554 Residenza: Sirio e dintorni
|
Inviato: 15 Set 2006 08:56 Oggetto: |
|
|
Hai ragione , è una vita che non seguo C, dovrei rimediare...
Comunque leggendo in giro sembra che anche la fgets sia dismessa in quanto pericolosa.
Il suggerimento su quel sito è di usare la getline. |
|
Top |
|
|
obelix Comune mortale
Registrato: 15/09/06 14:20 Messaggi: 2
|
Inviato: 15 Set 2006 14:46 Oggetto: Re: * problemi con la scanf |
|
|
Lo spazio è un separatore per la scanf:
scanf("%s %s", ns1, ns2);
sprintf(ns1+strlen(ns1), " %s", ns2);
Oppure usi gets in un ciclo di for finendo quando trovi il "return" |
|
Top |
|
|
Kaya Mortale devoto
Registrato: 24/09/05 17:17 Messaggi: 14
|
Inviato: 20 Set 2006 08:53 Oggetto: Re: * problemi con la scanf |
|
|
obelix ha scritto: |
Oppure usi gets in un ciclo di for finendo quando trovi il "return" |
In questo modo però rischi grosso, sopratutto perchè vai a sprecare molta memoria con continue nuove allocazioni.. |
|
Top |
|
|
|