Ошибка сохранения текста в файле
У меня есть код, в котором я должен ввести текст в консольном окне и он должен сохраниться в файле, но при компиляции мне выдает лишь только "Файл открыт" и записать в файл ничего нельзя. Ошибку я нашел(у меня пустой v), но как мне его заполнить(через cin выдаются ошибки)?
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include "BoolShelf.h"
#include "Book.h"
#include <fstream>
using namespace std;
bool func(string& s)
{
if (s[0] == 'v')
return true;
else return false;
}
void BookShelf::SaveBook()
{
vector<string> v;
cin >> v;
vector<string>::iterator it = v.begin();
while (it != v.end())
{
it = find_if(it, v.end(), func);
if (it != v.end())
{
cout << *it << "\n";
it++;
}
}
ofstream f1("book.txt");
f1.open("book.txt");
if (!f1.is_open())
{
cout << "Ошибка открытия файла!" << endl;
}
else
{
cout << "Файл открыт!" << endl;
for (it = v.begin(); it != v.end(); it++)
f1 << *it << "\n";
}
f1.close();
}