Przekazanie funkcji do funkcji

0

Mam następująco funkcję:

 
			**plik.open("dane_osobowe.txt", ios::out | ios::app);** /

                        **plik.open("dane_osobowe.txt", ios::in);**

Jako że nie chce tworzyć dwóch oddzielnych sprawdz_plik_odczyt, chciałbym użyć przekazania samego *powyższego kodu do fukncji poniżej. Jak należy to zrobić.

 
		void sprawdz_plik_odczyt()
		{
			fstream plik;
			**plik.open("dane_osobowe.txt", ios::in);**
			while(plik.good()==false)
			{
				char zakoncz;
				cout<<"Pliku nie udalo sie zaladowac ponowic probe ? (q - zakoncz) "; cin>>zakoncz;
				if(zakoncz=='q') exit(0);
				else plik.open("dane_osobowe.txt", ios::in);
			}
		}

sprawdz_plik_odczyt(plik.open("dane_osobowe.txt", ios::in));

tak kombinowałem :D ale nie wiem co wprowadzić tutaj

void sprawdz_plik_odczyt(TUTAJ)

0
std::string nazwa
1
void fatal(bool IsBad,const string &msg)
  {
   if(!IsBad) return;
   cerr<<msg<<endl;
   exit(1);
  }

ifstream plik("dane_osobowe.txt");
fatal(!plik,"Pliku \"dane_osobowe.txt\" nie udalo sie otworzyć do zapisu");

Wg mnie, programy konsolowe nie powinny robić takich rzeczy jak ponowienie próby otworzenia pliku - po interakcji z użytkownikiem.
Powoduje to problemy z użyciem takich programów poprzez batch pliki oraz w rurach (pipe).

1 użytkowników online, w tym zalogowanych: 0, gości: 1