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

Запись вектора в бинарный файл - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как записать строчную букву в заглавную? http://www.cyberforum.ru/cpp-beginners/thread1654646.html
В первой подпрограмме (formating_1) нужно что-бы программа записала фразу "привет мир. hello world" как "Привет мир. Hello world" по коду ниже, программа меняет только букву "П", а буква "h" остается без изменений. Вопрос: где ошибка в коде и как исправить? (Малая буква - символ, код которого лежит в пределах от 97 до 122 (латиница), от 224 до 255 (кириллица) по таблице ASCII. Большая буква...
C++ Что не так в коде? (парсер текста) есть условие: дан текст, состоящий из предложений, разделенных точками "привет мир. hello world". Напишите программу, что делать такое форматирование: после каждой точки в конце предложения текста должен стоять хотя бы один пробел; первое слово в предложении должно начинаться с большой буквы. Примечание. Текст может быть набран как на украинском, русском, так и английском языках.... http://www.cyberforum.ru/cpp-beginners/thread1654639.html
C++ Книги по ИКТ
Доброго времени суток, уважаемые обитатели. Готовлюсь к региональной олимпиаде по Информационным Компьютерным Технологиям. Прошу у вас помощи, так как надеюсь на вашу осведомленность в этом вопросе. Помогите, подскажите книги для подготовки к этой олимпиаде. Заранее благодарен.
Lambda expressions only available with -std=c++11 or -std=gnu++11 C++
В студии все работает, в qt попробовал mingw - выводит варнинг lambda expressions only available with -std=c++11 or -std=gnu++11 а потом no matching function for call to 'for_each с mvcc приложение запустилось у тут же скрашилось Код везде проверял один и тотже. vector<int> someVec; for(int i = 0; i < 100; i++) someVec.push_back(rand()%i);
C++ Использование ассемблера http://www.cyberforum.ru/cpp-beginners/thread1654583.html
Вообщем есть два файла main.cpp и add.S. Первый содержит код для компилятора g++, а также вызов внешней функции add. Функция add определяется в файле add.S и написана на ассемблере. Для g++ строка "g++ main.cpp add.S" создает работающую программу, то есть все OK. Но вот компилятором "cl" ничего не выходит. Подскажите как скомпилировать данную программу с помощью компилятора "cl" (Visual Studio)....
C++ Куда идти, пока молодой? Эй, привет. Может не по теме, но все равно. Тут, скорее всего, есть люди с большим жизненным опытом в программизме всяком, особенно на С++. Мне еще нету 16, но я уже определился, что хочу куда-нибудь, где нужно будет знать всякие разные языки программирования и уметь программировать вообще(желательно в гейм-дев). Я гуглил всякие движки видео-игр как-то, особенно самые современные и мощные, и не... подробнее

Показать сообщение отдельно
korol-sas
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 8
04.02.2016, 04:45     Запись вектора в бинарный файл
Здравствуйте, пытаюсь сделать запись вектора из обьектов моего класа в бинарный файл, но получаю не понятного рода символы в значениях атрибутов класа.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void save()
{
     ofstream fout("data.dat", ios::out | ios::binary | ios::trunc);
     fout.write(reinterpret_cast<const char*>(&humans[0]), humans.size()*sizeof(Human));
     fout.close();
}
 
void load()
{
    ifstream fin("data.dat", ios::in | ios::binary);
    fin.seekg(0, fin.end);
    int N = fin.tellg();              
    fin.seekg(0, fin.beg);
 
    const size_t count = N / sizeof(Human);
    vector<Human> buf(count);
    fin.read(reinterpret_cast<char*>(&buf[0]), count*sizeof(Human));
    fin.close();
    humans = buf;
}
получаю допустим такой результат в атрибуте first_name моего класа Human: `-61 'Г'`

Вот мой клас:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Human {
    public:
        void set_first_name(char *);
        char *get_first_name();
 
        void set_last_name(char *);
        char *get_last_name();
       
        void set_phone(char *);
        char *get_phone();
 
        void set_address(Address);
        Address get_address();
 
    private:
        char *first_name;
        char *last_name;
        char *phone;
        Address address;
 
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru