hai ragione infatti modificando la condizione di terminazione ora va perfettamente. Quindi a questo punto mi chiedo perchè se come dici tu la dichiarazione dell'array di stringhe non è esatta,il programma va comunque? ho provato anche ad aggiungere nel codice due cout per dire quali stringhe sono uguali e diverse verificando ulteriormente che tutto vada liscio e infatti così è.Ah come faccio ad evitare ripetizioni nelle comparazioni?
codice:#include <iostream> #include <cstring> #include <cstdlib> #include <fstream> using namespace std; int main() { fstream file; file.open ("dati.txt",ios::in); if (!file) cout << "Errore Apertura File"; int n = 0; char contarighe[10]; while (!file.eof()) { file.getline (contarighe,10); n++; } file.seekg(0); cout << "La lunghezza della lista e': " << n << "\n\n"; string *vet = new string [n]; //Letture file for (int i=0;i<n;i++) file >> vet[i]; //Stampa file for (int i=0;i<n;i++) cout << vet[i] << "\n"; cout << "\n\n"; for (int i=0;i<n;i++) { if(vet[i]==vet[n-i-1]) { cout << "la stringa " << i << " e' uguale alla stringa " << n-i-1 << "\n\n"; } else cout << "la stringa " << i << " e' diversa dalla stringa " << n-i-1 << "\n\n"; } }

Rispondi quotando