M
Mattia Campagna
Ospite
Quanto posterò sotto è un piccolo scorcio abbastanza semplice relativo ad un programmino per creare le mie password. Questa porzione di codice recupera una serie di caratteri da un file di testo tuttavia quando vado a stamparli a video mi stampa due volte l'ultima lettera del file. Deve essere un errore banale ma mi sto arrovellando sempre di più senza uscirne.
Chiaramente nel main le chiamate sono:
Codice:
struct matrice {
char info;
int indice;
matrice* pun;
};
/******************************GESTIONE MATRICE********************************/
// Inserisce in coda di una lista l'elemento passato
matrice* insCodaMatrice(matrice*& m, char x, int i) {
if(m==NULL) {m = new matrice; m->info=x; m->pun=NULL; m->indice=i;}
else insCodaMatrice(m->pun, x, i);
}
// Carica in memoria la matrice prelevandola dal file
void caricaMatrice(matrice*& m) {
char c; int i=1;
ifstream mat ("caratteri.txt", ios::in);
while(mat) {
mat >> c;
insCodaMatrice(m, c, i);
i++;
}
mat.close();
}
// Stampa a video la lista delle coppie matrice/indice
void stampaMatriceIndici(matrice* m) {
if(m==NULL) return;
cout << m->indice << ": " << m->info << endl;
stampaMatriceIndici(m->pun);
}
Chiaramente nel main le chiamate sono:
Codice:
matrice* matrix=NULL;
caricaMatrice(matrix);
stampaMatriceIndici(matrix);