Функции должны создать сложный (моя структура) вектор, затем сохранить его в двоичный файл и затем прочитать его из двоичного файла.Проблема в том, что он хорошо читает только первую строку.
Структура хорошая.Все, кроме чтения, работает хорошо.Это функции чтения и записи:
void saveVectorBin(vector<Complex> &v, const string filename) {
ofstream output;
output.open(filename, ios::binary);
if (output)
{
for (auto i: v) {
output.write(reinterpret_cast<char*> (&i), sizeof(i));
output << endl;
}
cout << "Wektor zapisany do pliku " << filename << endl;
output.close();
}
else cout << endl << "BLAD TWORZENIA PLIKU BIN" << endl;
}
vector<Complex> readComplexVectorBin(const string &filename) {
vector<Complex> v;
ifstream input;
input.open(filename, ifstream::binary);
if (input) {
Complex line;
while (input.read(reinterpret_cast<char*> (&line), sizeof(Complex))) {
v.push_back(Complex(line));
}
input.close();
}
else cout << endl << "BLAD ODCZYTU PLIKU" << endl;
return v;
}
Должно отображаться:
26.697 + 7.709i
20.133 + 23.064i
9.749 + 8.77i
Вместо этого отображается:
26.697 + 7.709i
1.43761e-57 + 1.83671e-43i
1.26962e+306 + -2.39343e-259i