Oppure

Loading
22/10/10 15:46
atx76
salve sono nuovo di questo forum,quindi vi prego di scusarmi per eventuali errori.
ho questo problema che da ore non trovo una soluzione
devo leggere un file di testo( riga per riga) e riscriverle in un altro file modificando alcuni caratteri.
ho fatto una programmino e funziona correttamente, il mio problema che alla fine del ciclo devo cancellare il primo file.

facendo gli opportuni controlli ho notato che quello che blocca la chiusura del file sono le substring che ho inserito.
vi allego codice spero che qualcuno mi possa aiutare.
#include <iostream>
#include <fstream> //header necessario per ifstream!

using namespace std;

int main() {
ifstream f("file.txt" ); //nome del file da aprire, si può mettere anche il percorso (es C:\file.txt)
ofstream f2("file2.txt" , ios::app); //se il file non esiste lo crea, altrimenti lo sovrascrive!



string s;

if(!f) {
cout<<"Il file non esiste!";
return -1;
}
if(!f2) {
cout<<"Errore nella creazione del file!";
return -1;
}

while(f.good()) //x leggere tutto il file ..
{
getline(f, s); //legge tutta la riga dal file e la mette nella variabile s
string c=s.substr(0, 14);
string d=s.substr(14, 4);
string e=s.substr(18, 10);

string g =d+c+e;
f2<< g << endl;
}

}
f.close(); //chiude il file
f2.close();
if(remove("file.txt)); // cancella file

return 0;
}

grazie anticipatamente
aaa
22/10/10 15:57
GuglielmoS
Non ho provato a compilare, però ci sono degli errori di sintassi, ed inoltre devi effettuare un controllo sul contenuto del file che vai a leggere. Infatti se hai una stringa che non è lunga quanto quella che ti aspetti, avrai per forza di cose degli errori riguardanti la substr.
...
if (s.length() >= 28) {
	string c=s.substr(0, 14);
	string d=s.substr(14, 4);
	string e=s.substr(18, 10);
       
	string g =d+c+e;
	f2<< g << endl;
}	
...
// la } non ci va, se no viene chiuso il main
    f.close(); //chiude il file
    f2.close(); 
...
// avevi dimenticato il " dopo file.txt
if(remove("file.txt")); // cancella file 


P.S: utilizza il tag code, se no non si capisce molto il codice.
Ultima modifica effettuata da GuglielmoS 22/10/10 16:08
aaa
22/10/10 16:25
atx76
grazie GuglielmoS, funziona perfettamente :k:
aaa