Ciao a tutti!
Finalmente mi iscrivo in questo pozzo di sapienza ahahah
Arrivo rapidamente al problema:
Sto facendo un programma in C++ (devc++ V 5.11) ma una parte, alquanto stupida, proprio non mi riesce.
Dopo molte molte ricerche ho trovato un modo per usare il replace. E' stato parecchio difficile perchè a quanto pare esistono diversi modi.
Decido quindi di implementarlo nel mio programma.
Devo usarlo per sostituire una stringa in un file di testo.
Fino a qui tutto ok, se la stringa si trova in una sola riga la trova e la sostituisce.
return 0;codice:int pos=0, lngtot=0, lng=0; string testo="", a="keyup 12 [45]", cerca="keydown 45 [12]", primo=""; int main() { ifstream read("dia.txt"); getline(read, testo); pos=testo.find("keydown 45 [12]"); cout<<pos<<"\n"; //questi cout mi servono per controllare il valore a video. lngtot=testo.length(); cout<<lngtot<<"\n"; lng=lngtot-pos; cout<<lng<<"\n"; testo.replace(pos, cerca.length(), a); read.close(); ofstream write("dia.txt"); write<<testo; cout<<testo<<endl; write.close();
}
Quindi ho deciso di provarlo come sarebbe poi nel file reale, ovvero modificando il txt da così:
visibile nascosto kedown 45 [12] visibile
A così:
visibile
nascosto
keydown 45 [12]
visibile
Ovviamente non funziona. Quindi ho modificato il codice in questo modo:
Avevo già usato con successo questo metodo con il while quindi credevo funzionasse.codice:int pos=0, lngtot=0, lng=0; string testo="", a="chiaro", cerca="nascosto", primo=""; int main() { ifstream read("dia.txt"); getline(read, testo); while (read.good()) { getline(read, testo); lngtot=testo.length(); cout<<lngtot<<"\n"; pos=testo.find(cerca); cout<<pos<<"\n"; lng=lngtot-pos; cout<<lng<<"\n"; primo=testo.substr(pos,lng); primo.replace(pos, lng, a); cout<<primo<<"\n"; } read.close(); ofstream write("dia.txt"); write<<testo; cout<<testo<<endl; write.close(); return 0; }
Potreste darmi una mano? Credo che il mio codice sia sbagliato, o almeno in parte. Magari sto usando un metodo inutile o esiste una via più semplice.
Vorrei capire cosa usare come usarlo e perchè sbaglio. Vi sarei grati se poteste farmi un esempio.
Vi ringrazio e vi saluto!
ps: Se necessario posso postare il codice con il while di cui parlavo sopra.

Rispondi quotando
