Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - char in più nello stream letto da file
Forum - C/C++ - char in più nello stream letto da file

Avatar
ale92_ (Normal User)
Newbie


Messaggi: 1
Iscritto: 05/06/2012

Segnala al moderatore
Postato alle 19:09
Martedì, 05/06/2012
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 :
Codice sorgente - presumibilmente C/C++

  1. char a;
  2.         fstream stampa;
  3.         stampa.open(nome, ios::in);
  4.         while(!stampa.eof())
  5.         {
  6.                 stampa.get(a);
  7.                 cout << a;
  8.         }
  9.         cout << endl;
  10.         stampa.close();


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.

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
http://img507.imageshack.us/img507/3112/immaginetm.jpg
avete qualche idea???


ps. qui uso visual studio ma ho fatto la prova anche con dev c++ e da lo stesso "errore"

Ultima modifica effettuata da ale92_ il 05/06/2012 alle 19:22
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:28
Martedì, 05/06/2012


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 9:57
Mercoledì, 06/06/2012
w il crossposting!

PM Quote