Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Можно ли считывать поля класса из двоичного файла одним fread - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение структуры из файла http://www.cyberforum.ru/cpp-beginners/thread677109.html
Добрый вечер. Помогите пожалуйста застрял на одном месте: 1. Используя ввод-вывод в стиле С++ создать файл и записать в него структурированные данные 2. Вывести созданный файл на экран 3. Удалить...
C++ Из шестнадцатеричной в десятичную Здравствуйте! У меня есть фаил, с которого я считываю числа по 2 байта. В этих 2ух байтах содержится число в шестнадцатеричной системе, но мне нужно вывести его в десятичной. Подскажите... http://www.cyberforum.ru/cpp-beginners/thread677090.html
C++ Обратная польская запись (ОПЗ) на С++
Пожалуйста помогите!!!! не знаю что мне сделать с этими задачами=((((( A. Обратная польская запись (ОПЗ). Постфиксной формой записи (ОПЗ) выражения a◦b называется запись, в которой знак операции...
файл инициализации C++
подскажите как можно в программе записать функцию GetPrivateProfileInt нашел синтаксис UINT WINAPI GetPrivateProfileInt( _In_ LPCTSTR lpAppName, _In_ LPCTSTR lpKeyName, _In_ INT...
C++ Поменять местами столбцы в динамическом массиве http://www.cyberforum.ru/cpp-beginners/thread677072.html
Нужно переставить местами столбцы в динамическом массиве по ключу! У меня почему-то переставляет на правильно, не могу найти ошибку, прошу помощи! #include <stdafx.h> #include <iostream>...
C++ Написать перебор символов в строке и сортировку массива структур Задание: заполнить массив структур (по сути - таблицу) из файла или с клавиатуры и отсортировать (в порядке возрастания или убывания) их по 3 букве имени. Написал сортировку по 1 букве. Не доходит... подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335

Можно ли считывать поля класса из двоичного файла одним fread - C++

22.10.2012, 14:49. Просмотров 413. Ответов 7
Метки (Все метки)

Можно ли считывать поля класса из двоичного файла одним fread?
C++
1
fread(this, sizeof(*this), 1, myFile);
Слышал, что компиляторы по разному трактуют порядок полей в классе, из-за чего такая строка может интерпретироваться иначе, чем хотелось бы мне. Вот и решил переспросить, ато может я не так понял что-то.
И, если все-таки так можно считывать, что делать с полями вида char*? Дело в том, что :
C++
1
2
3
4
5
6
7
8
9
10
11
class A
{
char *a;
public :
A() {a = new char[100000];}
};
void main()
{
A k;
int x = sizeof(k), y = sizeof(A);
}
x и y будут равны 4 (или 6 при х64), что логично, ведь поле - указатель, но на деле в дв. файл нужно записать не указатель, а всю строку. Здесь уже обычным sizeof не обойтись? А что если в классе 4 строки и 8 int'ов (если так же учиывать, что int записывается, как :
C++
1
fwrite(&someInt, 4, 1, myFile);
, из-за того, что sizeof(someInt) в x64 будет равен 6, что приведет к неправильному чтению? Никак, кроме 12-и fwrite/fread не обойтись?

Добавлено через 6 часов 23 минуты
up-to-date
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru