Запись вектора <double> в двоичный файл и повторное чтение

Я пытаюсь записать вектор двойников в двоичный файл. После этого я хочу это прочитать. Это неКажется, не работает. Вот код:

ofstream bestand;
vector v (32);
const char* pointer = reinterpret_cast(&v[0]);
size_t bytes = v.size() * sizeof(v[0]);
bestand.open("test",ios::out | ios::binary);
for(int i = 0; i < 32; i++)
{
   v[i] = i;
   cout < i;
   }
bestand.write(pointer, v.size());
bestand.close();
ifstream inlezen;
vector
 hmjd13 нояб. 2012 г., 17:58
write() неверный аргумент размера Так должно быть .v.size() * sizeof(double)
 James Kanze13 нояб. 2012 г., 19:10
@ K-Баллоskipws Безразлично»применимо к неформатированному вводу.

Ответы на вопрос(1)

Решение Вопроса

это.write() занимает количествобайтов, а не количествоПредметы написать:

bestand.write(pointer, v.size());

Так как тыВы уже вычислили правильное значение, используйте его:

bestand.write(pointer, bytes );
 Robᵩ13 нояб. 2012 г., 18:01
Хмд бил меня на 30 секунд.
 pivu013 нояб. 2012 г., 18:03
Это работает, спасибо! Предположим, у меня есть цикл for, пишущий новый вектор <двойной> каждая итерация в один и тот же файл. Что я должен изменить на чтение? Кроме того, но это в цикле?
 pivu013 нояб. 2012 г., 18:10
Хорошо нвм яя понял это :). Спасибо
 Robᵩ13 нояб. 2012 г., 18:02
@MagnusHoff Конечно. Исправлена.

Ваш ответ на вопрос