Есть файл input.txt с таким содержимым:
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
Записала содержимое в вектор и хочу записать в бинарный файл data.dat только поэлементно с индексом строки. Файл должен иметь структуру: индекс (4 байта) + 6 значений из вектора по 2 байта.
01 00 00 00 01 00 02 00 03 00 04 00 05 00 06 00
02 00 00 00 07 00 08 00 и т.д.
Вот мой код, но пишет неправильно
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
std::fstream input("input.txt");
std::vector<short> vec; // значения из файла
std::copy(std::istream_iterator<int>(input), std::istream_iterator<int>(), std::back_inserter(vec));
std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(std::cout, " "));
ofstream fout("data.dat", std::ios::out | ios::binary);
int countstring = 5;
int index = 0;
int row = 6;
for (int i = 0; i <= countstring; i++) {
index = i + 1;
fout.write((char *)&index, sizeof index);
for (size_t j = 0; j < row; ++j)
{
fout.write((char*)&vec[i * 6], row * sizeof(short));
}
}
fout.close();
return 0;
Подскажите, как исправить второй цикл, чтоб записывать поэлементно