내 클래스 유형의 STL Vector를 이진 파일로 작성하고 읽으려고하지만 istream_iterator의 문제점을 이해하지 못합니다.
프로젝트 규칙은 Boost와 같은 타사 라이브러리와 동일한 텍스트 파일 을 사용할 수 없습니다.istream_iterator를 사용하여 사용자 정의 유형의 벡터 만들기
class Book{
public:
Book(const std::vector<Book>& in_one_volumes,const std::string& title,
const std::string& author,const int pagecount,const int price,const std::string& date);
private:
std::vector<Book> inOneVolumes;
std::string title;
std::string author;
int pagecount;
int price;
std::string date;
};
이 쓰기 방법 :
void writeBook(std::vector<Book> books) {
std::ofstream binOut("book.bin", std::ios::binary);
std::copy(books.begin(), books.end(),
std::ostream_iterator<Book>(binOut, "\n"));
}
그리고 내가 같이 읽고 싶은 :
이std::vector<Book> readBooks() {
std::vector<Book> toReturn;
std::ifstream BinIn("book.bin", std::ios::binary);
std::istream_iterator<Book> file_iter(BinIn);
std::istream_iterator<Book> end_of_stream;
std::copy(file_iter, end_of_stream, std::back_inserter(toReturn));
return toReturn;
}
Compiller 말한다 - 예약
이
은 Book.h입니다 : 사용 가능한 적절한 기본 생성자가 없습니다.
대단히 감사합니다, 저를 도왔습니다! – Zulcom