从文件c ++加载/保存(序列化?)

时间:2018-01-29 16:41:06

标签: c++

我正在做家庭作业,我们的任务是做“图书馆系统” 我无法从文件中保存/加载书籍。

void Library::save() {
std::ofstream file(fileName);
if (file.is_open()) {
    for (auto &b : books) {
        std::stringstream ss;
        std::stringstream genres;
        for (auto &g : b.getGenres())
            genres << g;

        ss << b.getName() << b.getAutor() << b.getMajor() << genres.str() << b.getBorrowed() << "\n";
        file << ss.str();
    }
    file.close();
}


void Library::load() {
std::streampos size;
char *memblock;

std::ifstream file(fileName, std::ios::in | std::ios::binary | std::ios::ate);
if (file.is_open()) {
    size = file.tellg();
    memblock = new char[size];
    file.seekg(0, std::ios::beg);
    file.read(memblock, size);
    file.close();

    printf(memblock);
    std::cout << sizeof(memblock);


    delete[] memblock;
}

}

当我加载它时,它是如何排成一行的,我如何分开它们?或者我做错了吗?

1 个答案:

答案 0 :(得分:0)

您的问题不是很清楚,并且您没有包含所有代码,但我认为您可能会问的是如何分隔文本文件中的行。写入文件时,可以使用“\ n”跳到下一行。如果这有用,请将其投票。