Ошибка сохранения текста в файле

У меня есть код, в котором я должен ввести текст в консольном окне и он должен сохраниться в файле, но при компиляции мне выдает лишь только "Файл открыт" и записать в файл ничего нельзя. Ошибку я нашел(у меня пустой 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();
}

Ответы (0 шт):