ho creato una lista di stringhe in cui memorizzare il contenuto di un file di testo. una volta creata la lista, il programma deve scorrerla, effettuare alcune operazione e scrivere i risultati in un nuovo file di testo.

codice:
   ofstream f;
   f.open("nomefile.txt");
   
   string key;
   list<string> text;
   static char ALPH[21] = {'A','B','C','D','E','F','G','H','I','L','M','N','O','P','Q','R','S','T','U','V','Z'};

   int* index_t = new int[text.size()];
   int* index_k = new int[key.length()];

   for(int i = 0; i < key.length(); i++){
               for(int j = 0; j < 21; j++){          
                       if(key[i] == ALPH[j]) 
                       index_k[i] = j;  //associa un indice alla chiave
               }        
       }
       
   for(list<string>::iterator it = text.begin(); it != text.end(); it++){
           for(int i = 0; i < it->length(); i++){
               for(int j = 0; j < 21; j++){
                       if((*it)[i] == ALPH[j])
                       index_t[i] = j;
               }
               char ch = ALPH[(index_k[i%key.length()] + index_t[i])%21]; //lettera codificata
               f << ch;
           }
           f << "\n";
        }
        
        f.close();
non ho nemmeno provato ad implementarlo perchè già credo sia sbagliato. qualcuno sa dirmi come modificarlo per riuscire a farlo funzionare?
grazie