riivv Ответов: 1

Как прочитать двоичный файл в вектор векторной структуры


std::vector<std::vector<std::vector<sphere_data> >> Sphere_image ;
This is how I have written the data to a binary file
ofstream fout("C:/Project/data.dat", ios::out | ios::binary);
			for (const auto &dim: Sphere_image)
			for (const auto &dim2:dim)
				  fout.write(reinterpret_cast<const char*>(dim2.data()), dim2.size() * sizeof(sphere_data));
		
fout.close();

How to read the binary file into the below vector.
std::vector<std::vector<std::vector<sphere_data> >> Sphere_image_read ;


Что я уже пробовал:

СТД::вектор&ЛТ;СТД::вектор&ЛТ;СТД::вектор&ЛТ;sphere_data
четыре потока("C:/Project/data.dat" для iOS::нет | ОС iOS::бинарные);
for (const auto & dim: Sphere_image)
for (const auto & dim2:dim)
фут.писать(оператора reinterpret_cast&ЛТ;константный тип char*&ГТ;(dim2.данных()), dim2.размер() * оператор sizeof(sphere_data));

фауту.рядом();

NotPolitcallyCorrect

К вашему сведению, просто сбросить кучу кода в текстовое поле и опубликовать его на форуме-это не вопрос и не описание проблемы. Не ждите, что люди будут читать ваши мысли.

riivv

Я написал объяснение, что я должен прочитать двоичный файл в вектор векторной структуры. Для записи того же самого в двоичный файл я написал приведенный выше код я хочу знать как его можно прочитать

Richard MacCutchan

Что должны делать все эти векторы? Вы читаете данные, просто перевернув операции, которые вы использовали для их записи.

1 Ответов

Рейтинг:
0

KarstenK

Как писал Ричард, вы должны вернуть процесс записи, прочитав данные и заново сконструировав свой объект таким образом:

ifstream fin("C:/Project/data.dat", ios::in| ios::binary);
//calculate sphere count
int count = fileSize /  sizeof(sphere_data);
//loop for all data
for(int n = 0; n < count; n++ ) {
//read one data set
fin.read(reinterpret_cast<const char*="">(dim.data()), dim.size() * sizeof(sphere_data));
//add to your sphere
}
fin.close();</const>


riivv

Можете ли вы сказать мне, что такое размер файла?

jeron1

Здесь[^] есть один метод, есть другой метод[^] также.