Я пытаюсь сохранить
vector<vector<int>>
в виде XML-файла.векторы будут динамически изменяемого размера.Я пытался использовать BOOST: SERIALIZATION, но я получаю эту ошибку. libc ++ abi.dylib: завершается с необработанным исключением типа boost :: archive :: archive_exception: ошибка входного потока
Я не вижу проблем с моим кодом.Другой метод, кроме повышения, чтобы сохранить как XML, будет хорошо, если кто-то может предложить один.
#include <iostream>
#include <vector>
#include <iostream>
#include <fstream>
#include <boost/serialization/serialization.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
using namespace std;
int main() {
using namespace std;
int numChords;
vector<vector<int> > chords; // array to store chord arrays
numChords = 2; // size of outer array
chords = {{41, 48, 55, 56, 58, 63},
{44, 51, 56, 58, 61, 63}}; // data structure
// print the array
cout << endl << "you entered: " << endl;
// print the results
for (int i = 0; i < numChords; i++) {
for (int j = 0; j < chords[i].size(); j++) {
cout << chords[i][j] << ",";
}
cout << endl;
}
// store the array to a file
std::ofstream ofs("dump.dat");
boost::archive::text_oarchive oa(ofs);
oa & chords;
chords.clear(); // clear the original array
// restore the array from the file
std::ifstream ifs("dump.dat");
boost::archive::text_iarchive ia(ifs);
ia & chords;
cout << endl << "you saved: " << endl;
// print the restored array
for (int i = 0; i < numChords; i++) {
for (int j = 0; j < chords[i].size(); j++) {
cout << chords[i][j] << ",";
}
cout << endl;
}
return 0;
}
Я пробовал разные имена файлов и пути к файлам.Я попытался использовать & или << >> после заявления о повышении.
Полный вывод
you entered:
41,48,55,56,58,63,
44,51,56,58,61,63,
libc++abi.dylib: terminating with uncaught exception of type boost::archive::archive_exception: input stream error
Process finished with exit code 6
Заранее благодарим за любые советы.
Шон