Użycie strumienia w funkcji? Czy jest to możliwe?

0

Witam od niedawna uczę się programowania w c++ (korzystam ze środowiska dev c++). Chciałem stworzyć program który pobierał by liczbę z jednego pliku tekstowego i zapisywałby ją i jej binarny odpowiednik w innym pliku tekstowym. Napisałem taki program:

#include <iostream>
#include <fstream>
using namespace std;
void dzies_w_bin(int a, ofstream test);
int main() {
	int a;
	ifstream wejscie("naturalne2.txt");
	ofstream zapis("systemy_z_testem.txt");
	if(!"naturalne2.txt")  //obsluga bledow
	{
		cout<<"Brak plikow"<<endl;
		system("pause");
		return 1;
	}
	while(!wejscie.eof())	//dopoki nie prawda ze natrafilismy na koniec pliku 
	{
		wejscie>>a;
		if(wejscie) //jezeli strumien nie jest pusty
		{
			zapis<<a<<" ";
			dzies_w_bin(a,zapis);
		}
	}
	wejscie.close();
	zapis.close();
	return 0;
}
void dzies_w_bin(int a, ofstream test){
	if(a>0){
		dzies_w_bin(a/2, ostream test);
		test<<a%2;
	}
}

I po skompilowaniu, zamiast się uruchomić lub napisać w czym problem, uruchamia mi się plik ios_base.h w edytorze. Program zrobiłem już innym sposobem ale chciałbym się dowiedzieć jak lub czy w ogóle da się używać strumieni w funkcjach.

0
void fun ()
{
cout << " jestem funkcja";
int x;
cout <<  endl << "daj mi x'ksa!";
cin >> x;
}
main()
{
fun();
}
1

void dzies_w_bin(int a, ofstream test) - obiekt test powinien być przekazany przez referencję,
bo konstruktor kopiujący std::basic_ofstream jest albo usunięty lub prywatny, więc to nie powinno się skompilować.

#include <iostream>
#include <fstream>

void print_to_file(std::ofstream& fout, int data) {
   fout << data << std::endl;
}

int main() {
   std::ofstream fout("test.txt");
   if (fout) {
      print_to_file(fout, 100);
   }   
}

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