У меня проблема с чтением двоичного файла.Как читать double из двоичного файла и сохранять его в векторе
Мой код до сих пор:
ifstream file("ns.bin", ios::in | ios::binary | ios::ate);
file.seekg(0, std::ios::end);
size = file.tellg();
file.seekg(0, std::ios::beg);
buffer = new char[size];
file.read(buffer, size);
file.close();
double* double_values = (double*)buffer;//reinterpret as doubles
Мой вопрос: Как я могу получить двойники от double_values
в вектор этого типа:
vector<double> buffer2;
Или, если не представляется возможным: Как сделать Я получаю количество двухместных номеров от double_values
?
Надеюсь, что sb может мне помочь!
Спасибо! для вас aswer и хорошее объяснение :) У меня есть другой вопрос, может быть, у вас есть идея :) Я попытался напечатать вектор с помощью cout, а в качестве ограничения я установил количество удвоений size/sizeof (double) ... и он работает. он печатает каждый двойной (size/sizeof (double), это также правильный номер), но в конце он печатает также sth, но вы не видите ничего похожего на то, что он печатает пробелы ... поэтому я попробовал его также с 2d вектор, и здесь он печатает некоторые 0 с ... у вас есть идея, почему? – Ildon
Сложно сказать, в чем конкретно заключается ваша проблема, но я бы предположил, что вы пытаетесь напечатать одно из последних элементов; 'cout << buffer2 [buffer2.size()]' - неопределенное поведение –