Тема: Читання та запис структур
Доброго дня!
#include <sys/stat.h>
#include <memory.h>
#include <fcntl.h>
#include <stdio.h>
#include <io.h>
#include <string.h>
#include <conio.h>
#include <iostream>
void show_string(char *string)
{
while (*string) std::cout << *string++;
}
struct mystruct {
int i;
char buf[5];
double d;
};
int main(int argc, char* argv[])
{
char str1[]="Sample string";
// відкриваємо файл
int fh = _open("file.dat",_O_RDWR | _O_BINARY);
if (fh == -1)
{
// або при необхідності створюємо новий
fh = _creat("file.dat",_S_IREAD | _S_IWRITE);
if (fh == -1)
// не шмагла :xz:
return 1;
}
// готуємо структури для запису - читання
mystruct ms;
mystruct B;
memset(&ms,0,sizeof ms);
memset(&B,0,sizeof B);
ms.i = 43690;
ms.d = 234881023;
strcpy(ms.buf, "Бука");
// позиціонуймо покажчик в кінець файлу
_lseek(fh,0,SEEK_END);
char* pstr1 = 0; pstr1+=1245008;
show_string(pstr1);
// додаємо нову структуру
_write(fh,&ms,sizeof ms);
// позиціонуймося у початок
_lseek(fh,0,SEEK_END); // long _ lseek ( int fd, long offset, int origin ); Переміщує покажчик файлу у вказане місце розташування.
// читаємо першу записану структуру
_read(fh,&B,sizeof B);
printf("{ i: %d, d: %d, buf: %c }", B.i, B.d, B.buf);
getch();
return 0;
}
Я звичайно розраховував що file.dat буде прочитаний і присвоєний B а що це?
У B нулі...... Взагалі що в мене таки B? Я гадав що дещо таке саме як обЄкт.
А може й ні...