PDA

Visualizza la versione completa : C++: da file non legge spazi e \n


pax_partout
09-01-2003, 16:54
Ciao a tutti,
sono un provetto di C++.
quando vado a leggere un file e scrivo il contenuto su un'altro file o a video, non riesco a leggere il valore di spazio e ritorno a capo dal file, quindi i dati vengono inpasticciati.
Come posso fare???
se scrivo if(variabile_char == ' ') non entra mai nell'if perchè non vede lo spazio, eppure il C lo legge, stesso problema con ritorno a capo \n
Soluzioni???
Grazie
P.S.
Il C++ ha una funzione come C che legge l'intera riga???
in C si chiama fgets
Grazie ancora

Johnny_Depp
09-01-2003, 17:06
INPUT:
cin.getline()
http://forum.html.it/forum/showthread.php?s=&threadid=377286&highlight=cin+c

OUTPUT:
fgets()
.......
fgets(stringa, dimensione_stringa, puntatore_al_file);
http://forum.html.it/forum/showthread.php?s=&threadid=378864

Tokamak
09-01-2003, 17:15
non mi risulta che se scrivi

char c=' '; //digito spazio tra apici singoli
if (c==' ')
printf("CIAO");

non entri nell'if, le 2 istruzioni precedenti sicuramente scriveranno la parola CIAO, alternativamente puoi usare char(32) al posto di ' '


Il C++ ha una funzione come C che legge l'intera riga???
in C si chiama fgets

in C++ puoi usare tutte le funzioni del C quindi anche fgets, aventualmente se proprio vuoi usare il C++ prova a vederti la classe MFC CFile metodo Read.

Ciao

r0x
09-01-2003, 21:01
Tokamak .. Come puoi tirare in ballo MFC che tra l`altro non solo non e` portabile ma e` solo per VC++? Non sei a conoscenza dell`esistenza di una libreria standard per il C++?

Johnny_Depp .. fgets() per l`output non mi risulta eh.. :D

pax_partout .. per leggere da file crei un oggetto 'ifstream' e lo leggi come quando usi cin, pero` invece di fare il classico >>:



cin >> riga;


Fai come ha detto Johnny_Depp:



ifstream file( "nomefile" );

file.getline( riga, n_caratteri );


Oppure se 'riga' e` di tipo 'string':



getline( file, riga );


Questo finche` getline() non ritorna 0 o e` vero file.eof().

Le funzioni esistono, sia di per se` che le loro documentazioni.

U-S-A-T-E-L-E.

RTFW, STFW.

www.google.com

Loading