PDA

Visualizza la versione completa : [C] Leggere stringhe contenenti spazi


Ilmalcom
21-12-2004, 01:07
Buona sera a tutti :) Ho già fatto una ricerca sul forum, ma con scarso successo... esiste un modo per leggere una stringa contenente degli spazi immessa da tastiera e memorizzarla in una variabile?
Ho provato varie soluzioni, ma nessuna si è rivelata valida:
- scanf legge solo fino a che non trova uno spazio
- gets solleva le ire del compilatore, che mi sconsiglia di usarlo
- fgets interpreta l'invio come un carattere normale e non come quello di terminazione

Potete suggerirmi una soluzione buona per l'ANSI C?

kentaromiura
21-12-2004, 08:48
prova ad utilizzare la funzione Gets contenuta qui
http://forum.html.it/forum/showthread.php?s=&threadid=655927
:D
praticamente usi un ciclo..

Ilmalcom
21-12-2004, 11:24
Originariamente inviato da kentaromiura
prova ad utilizzare la funzione Gets contenuta qui
http://forum.html.it/forum/showthread.php?s=&threadid=655927
:D
praticamente usi un ciclo..
Potrei scrivermene una pure io, ma vorrei sapere se esiste una soluzione già pronta :stordita: Mi pare impossibile che in C non si possano leggere da tastiera stringhe contenenti spazi :stordita:

Ilmalcom
22-12-2004, 11:03
up?

RaouL_BennetH
22-12-2004, 11:22
ti posto un link che spero ti possa aiutare:

http://staff.polito.it/gianpiero.cabodi/dida/fi_ges/lab/lab3.html

kentaromiura
22-12-2004, 11:45
volendo puoi usare anche
scanf("%[^\n]",s)
ma non e' standard e ,cosi' come in gets o scanf("%s")
non effettui nessun controllo della dimensione..
l'unico modo SICURO e con un ciclo, e no non esiste funzione prefabbricata per questo
(
..
vorrei ricordarti che il c non avrebbe nemmeno le funzioni di input e output..
infatti bisogna ricorrere alla libreria stdio.h
..
o in c++ alla fstream
)
:dottò:
p.s.
la mia libreria permette anche sotto linux un controllo della dimensione
eliminando la bufferizzazione dell input e output
per questo te l' ho postata..

Ilmalcom
22-12-2004, 16:54
Originariamente inviato da kentaromiura
p.s.
la mia libreria permette anche sotto linux un controllo della dimensione
eliminando la bufferizzazione dell input e output
per questo te l' ho postata..
Sì, ho visto e ti ringrazio ;) Adesso valuterò cosa fare.
Grazie anche a raoul per la segnalazione

Loading