salve a tutti vi scrivo oggi perchè ho un problema veramente strano a cui non riesco proprio risolvere.
sto studiando c++ per un esame, non è il linguaggio che uso di solito ma non ho avuto grandi problemi.
il fatto è questo...devo leggere un file .txt "criptarlo" tramite una matrice e scriverlo in un altro .txt poi infine visualizzarli entrambi a schermo...un gioco da ragazzi direte voi, così pensavo anche io.
scrivo il programma, l'algoritmo nel complesso funziona quando per caso noto che nel testo criptato c'erano 2 lettere in più; a questo punto faccio andare istruzione per istruzione una alla volta e vedo che quando vado a leggere carattere per carattere con questa funzione :
guardando lo stream alla fine del file c'è un doppione dell'ultima lettera e quindi quando va a criptare aggiunge una lettera e quando lo visualizza ne aggiunge un altra.codice:char a; fstream stampa; stampa.open(nome, ios::in); while(!stampa.eof()) { stampa.get(a); cout << a; } cout << endl; stampa.close();
non vedo nulla di strano nella funzione che ho scritto però ho notato che se metto semplicemente stampa >> a, non lo stampa (nello stream c'è lo stesso però è come se non lo contasse), però visto che >> ignora gli spazi ho dovuto usare la get
vi posto uno screenshoot di quello che vedo
avete qualche idea???
ps. qui uso visual studio ma ho fatto la prova anche con dev c++ e da lo stesso "errore"