//XXX funzionante, qualche ingenuita' e codice non indentato // luca pecchini 157031 luca.pecchini1@studenti.unipr.it // dis07 7/7/2004 //esame di fondamenti di informatica A //ing. elettronica // //FIXME non indentato #include <iostream> #include <cstdlib> #include <fstream> using namespace std; void elaborazione (void); int i=0; int num[26]; char l[26]; int main () { ifstream fin ("tabella.txt"); if (!fin) { cout <<"errore nell'aperptura del file tabella.txt"<<endl; exit (1); } for (;i<26;i++) fin >>l[i] >>num [i]; //FIXME e se ci sono meno di 26 righe in tabella.txt? fin.close (); cout <<"il testo finale e'"<<endl; elaborazione (); cout <<endl; system ("pause"); return (0); } void elaborazione (void) { ifstream fin1 ("testo.txt"); if (!fin1){ cout <<"errore nell'aperptura del file testo.txt"<<endl; exit (1); } char ch; while ((ch =fin1.peek ()) != EOF) { if (ch == '[') {fin1.ignore (); fin1 >>ch; for (i=0;i<26;i++) if (l[i]==ch) cout <<num[i]; //FIXME una volta trovata la lettera deve anche uscire dal for } else if (ch==']') //FIXME la lettura della ']' poteva metterla in maniera molto piu' sensata dentro il blocco precedente. fin1.ignore (); else cout <<ch; fin1.get (ch); } cout <<endl; fin1.close (); }