PDA

Visualizza la versione completa : [c++] lettura da file.txt e string


andry80
28-04-2005, 20:20
Salve a tutti!!

Ho un problema con un file file.txt che viene letto da un algortitmo c++ che prende i valori e li passa ad una variabile float.
Il file č fatto in questo modo

32.45
24.5

34.2
...

il problema č che posso avere degli spazi vuoti tra le righe, quindi nel momento in cui eseguo la funzione getline:

ifstream in ("file.txt")
string STRINGA;
getline(in, STRINGA,'\n');

devo dire al programma che se STRINGA č vuota č necessario saltare e andare avanti col getline, cosa che riuscirei a fare se solo capissi come verificare che STRINGA č vuota.

Ho provato con :
if(STRINGA == NULL).... //COSė non funziona
if(STRINGA == " ").... //COSė non funziona
if(STRINGA == "\n").... //COSė non funziona

Come posso fare???
Grazie
:confused: :confused:

-Yara-
28-04-2005, 21:08
Originariamente inviato da andry80
Salve a tutti!!

Ho un problema con un file file.txt che viene letto da un algortitmo c++ che prende i valori e li passa ad una variabile float.
Il file č fatto in questo modo

32.45
24.5

34.2
...

il problema č che posso avere degli spazi vuoti tra le righe, quindi nel momento in cui eseguo la funzione getline:

ifstream in ("file.txt")
string STRINGA;
getline(in, STRINGA,'\n');

devo dire al programma che se STRINGA č vuota č necessario saltare e andare avanti col getline, cosa che riuscirei a fare se solo capissi come verificare che STRINGA č vuota.

Ho provato con :
if(STRINGA == NULL).... //COSė non funziona
if(STRINGA == " ").... //COSė non funziona
if(STRINGA == "\n").... //COSė non funziona

Come posso fare???
Grazie
:confused: :confused:

Ma quando confronti due stringhe non puoi usare == perchč non č come se confrontassi un carattere.
Devi usare

if(!strcmp(STRINGA," ")) ...

comunque in C:



while(!feof(file)) //finchč non č alla fine del file
{
fgets(stringa,255,file);
printf("%s",stringa);
}

Loading