Mam program, który otwiera plik, wczytuje wiersz, losuje liczbę, jeśli jest ona równa 1 to zapisuje wiersz do plik1 a jeśli nie to do plik2. W ten sposób dzieli plik losowo na dwa. Kolejność tych wylosowanych liczb odkłada na vector po czym korzystając z tej kolejności odtwarza plik pierwotny z tych dwóch na które został podzielony. Wyskakuje mi jednak taki błąd: error: no matching function for call to 'getline(std::ofstream&, std::string&)
Oto kod:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
string wiersz;
int a;
vector<int> losy;
ifstream plik("a.txt");
ofstream plik1("plik1.txt");
ofstream plik2("plik2.txt");
ofstream plik3("plik3.txt");
while(!plik.eof()){
getline(plik,wiersz);
a=rand()%2+1;
losy.push_back(a);
if(a==1) plik1<<wiersz<<endl;
else plik2<<wiersz<<endl;
}
plik1.seekp(0);
plik2.seekp(0);
for(int i=0;i<losy.size();i++){
if(losy[i]==1) getline(plik1,wiersz);
else getline(plik2,wiersz);
plik3<<wiersz;
}
plik.close(); plik1.close(); plik2.close(); plik3.close();
return 0;
}
Błąd wyskakuje w tym miejscu if(losy[i]==1) getline(plik1,wiersz); Co jest nie tak i jak to naprawić?