PDA

Visualizza la versione completa : [C++] getline per i file di testo


maluz1
11-09-2013, 22:11
ciao a tutti!:)
sto provando a creare un programma che "simula" un editor di html.
in sintesi il procedimento il seguente:
1- creo un primo file di testo dove memorizzo riga per riga gli input della cin( fin qui nessun problema siccome anche andando a controllare il file di testo .txt noto che tutto corretto)
2- copio il contenuto del primo file di testo in un secondo file .html( che poi sar il programma vero e proprio ).

qui il codice del secondo passo:



fstream f_txt;
ofstream f_html;
...

f_txt.open( nome_f + ".txt", ios::in );

f_html.open( nome_f + ".html" );

cout << "...STO CREANDO IL PROGRAMMA..." << endl;

while ( !f_txt.eof() )
{
//getline( f_txt, temp_s, (char) 10 ); un altra possibilita di getline che ho trovato
getline( f_txt, temp_s );
//f_txt >> temp_s; //questa soluzione sarebbe anche corretta ma preferirei la getline
temp_s= taglia_stringa( temp_s, length_int(i) + 2 );// questa lasciatela stare intanto l'errore non si verifica qua

f_html << temp_s;
}

f_html.close();
f_txt.close();


grazie mille in anticipo!!!:)

MItaly
11-09-2013, 23:00
Com' dichiarata temp_s? Che errore ricevi?

oregon
11-09-2013, 23:46
Originariamente inviato da maluz1
sto provando ...

Ma scusa, dici cosa stai facendo e ci mostri il codice ma non dici qual l'errore specifico ...

:confused:

maluz1
12-09-2013, 09:03
Si scusate,
Temp_s una variabile string
Ma non m da nessun errore in fase di compilazione,
A run time il programma viene bloccato da windows che mi informa di un errore.
per questo che non riesco a capire quale sia il problema. Grazie mille comunque delle risposte:)

oregon
12-09-2013, 10:26
Originariamente inviato da maluz1
windows che mi informa di un errore.


E informa anche noi di quale errore si tratta ... ci sar uno specifico messaggio di Windows ...

Comunque, hai eseguito passo passo in debug per vedere quale linea responsabile?

In ogni caso, il codice, *senza* la linea che chiama la funzione

taglia_stringa

funziona senza errori.

maluz1
12-09-2013, 13:59
guarda io ho mandato in esecuzione commentando il getline e inserendoci invece:
f_txt >> temp_s;

e funziona.

io uso code::block e usando il getline windows mi comunica solamente che editor_html( il nome del mio programma) ha smesso di funzionare...
code::block invece termina con due messaggi di errore:
- la prima volta che lancio l'eseguibile:
processed return 255 ( 0xFF ) , che poi l'esadecimale di 255...
- dopo la prima volta che lo lancio l'errore :
processed return -1073741819 ( 0xC0000005 )

grazie:)

maluz1
12-09-2013, 14:12
grazie mille di tutto, ho risolto ed effettivamente il problema era in taglia_stringa dove invece di scrivere s[i + n] avevo scritto s[i] + n che non era possibile poich non aveva senso sommare ad una stringa un intero.

scusate il disturbo per questo mio errore di distrazione...

grazie mille ancora e complimenti ;)

Loading