Salve, devo creare due funzioni di una classe che memorizzino e leggano dati su/da file di testo.
Questi sono i prototipi:
codice:
virtual void memorizza_dati(ofstream &);
virtual void visualizza_dati(ifstream &);
e queste le implementazioni:
codice:
void Manoscritto::memorizza_dati(ofstream & OutFile){
char buffer[20];
cout << "Inserire il nome del file in cui memorizzare dati: ";
cin >> buffer; OutFile(buffer,ios::out | ios::app);
OutFile << Codice << " " << Autore << " " << numpag << " " << Formato << endl;
OutFile.close();
}
void Manoscritto::visualizza_dati(ifstream & InFile){
char buffer[20];
cout << "Inserire il nome del file in cui memorizzare dati: ";
cin >> buffer;
InFile(buffer,ios::in);
InFile >> Codice >> Autore >> numpag >> Formato; InFile.close();
}
Solo che mi da questi errori:
no match for call to `(std::basic_ofstream<char, std::char_traits<char> >) (char[20], std::_Ios_Openmode)'
no match for call to `(std::basic_ifstream<char, std::char_traits<char> >) (char[20], const std::_Ios_Openmode&)'
Che ho visto dipendono dal fatto che i parametri di stream sono passati dall'esterno (infatti dichiarandoli all'interno della funzione, va tutto liscio). Come posso correggere il codice per far passare i parametri di stream dall'esterno?
Grazie in anticipo per l'aiuto.