Вот 2 примера на сохранение простого массива и структуры посложнее.
========================
int src[5] = {1, 2, 3, 4, 5}; // исходный массив
int dest[5] = {0,0,0,0,0}; // сюда пишем
// заливаем в файлос, закрываем, открываем повторно
FILE *f = fopen("myarray.bin", "wb+");
if(f){
for(int i=0; i < 5; i++){
fwrite(&src[i], sizeof(src[i]), 1, f);
}
fclose(f);
}
f = fopen("myarray.bin", "rb+");
// типа для подсчета размера файлоса
long curpos, length;
curpos = ftell(f);
fseek(f, 0L, SEEK_END);
length = ftell(f);
fseek(f, curpos, SEEK_SET);
// заливаем в массив
if(f){
for(int i=0; i < ARRAYSIZE(dest); i++){
fread(&dest[i], sizeof(dest[0]), 1, f);
}
fclose(f);
}
/*
сохранение структуры
*/
struct tagMyStruc{
char one[1];
char two[5];
int three[1];
char four[5];
};
tagMyStruc src2 = {"я", "купил", 2, "носка"};
f = fopen("myarray2.bin", "wb+");
if(f){
fwrite(&src2, sizeof(src2), 1, f);
}
fclose(f);
//
f = fopen("myarray2.bin", "rb+");
// типа для подсчета размера файлоса
curpos = ftell(f);
fseek(f, 0L, SEEK_END);
length = ftell(f);
fseek(f, curpos, SEEK_SET);
// заливаем в структуру
tagMyStruc dest2;
if(f){
fread(&dest2, sizeof(dest2), 1, f);
fclose(f);
}
==================================
В принципе, объявляя структуры, можно сохранять сколь угодно сложные бинарики где угодно - в файлах, БЛОБах, и т.п. Объявив структуру в отдельном H-файлосе как тип, и подсоединяя его к разным проектам, будешь спокойно передавать бинарные структуры между разными прогами.
Валерий Куликов
Предыдущий вопрос
|
|
Следующий вопрос
источник
by jenyok
|