//XXX legge solo una riga del primo file, rilegge piu' volte il secondo adeguata #include<iostream>//<bergamini><Marco><157291><-_m4rk_-@libero.it><Stud17> #include<fstream> #include<cstring> using namespace std ; void read_file( char* buffer ) ; char Control_file ( char ) ; const int Max_length = 100 ; int main () { char buffer[Max_length] ; read_file ( buffer ) ; system ("pause") ; return 0 ; } void read_file ( char* buffer ) { char lettera ; char Nome_file[] = "testo.txt" ; ifstream read(Nome_file) ; if (!read) { cerr << " file non trovato " ; exit(1) ; } read.getline(buffer , Max_length) ; //XXX leggere una riga e poi analizzarla carattere per carattere e' discutibile, bastava leggere carattere per carattere char* p ; for ( p = buffer ; *p ; p++ ) if ( *p == '[' ) { lettera = *(p+1) ; char tornato = Control_file( lettera ) ; cout << tornato << endl ; } //FIXME e se non e' una lettera? E se il file e' composto da piu' righe? cout << buffer << endl ; read.close() ; } char Control_file( char lettera ) //FIXME approccio poco efficiente. Lei legge il secondo file ogni volta! { const int Max_alfab = 30 ; char Nome_file2[] = "tabella.txt" ; ifstream leggi( Nome_file2 ) ; if (!leggi){ cerr << "file non trovato " ; exit(2) ; } char lettera_1[2] ; char numero ; char tabella[Max_alfab] ; char tabella_1[Max_alfab] ; char*p ; for ( int i = 0 ; leggi >> lettera_1 >> numero ; i++ ){ p = lettera_1 ; if ( *p == lettera ) return numero ; } leggi.close() ; }