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

Запись string в бинарный файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Архитектура программы "Морской бой" http://www.cyberforum.ru/cpp-beginners/thread835734.html
Пишу морской бой, с возможностью игры, как с компьютером, так и с другим человеком по сети. Не получается продумать архитектуру программы. В программе хочу использовать паттерн Strategy, чтоб можно...
C++ Найти количество цифр, которые входят в каждое из 3 чисел Даны три натуральных числа А, В, С. Найдите количество цифр, входящих одновременно в состав каждого из для этих чисел. Входные данные: 3 числа, каждое в своей строке, не больше 1000000. Выходные... http://www.cyberforum.ru/cpp-beginners/thread835731.html
Игра со спичками C++
Сама игра следующая: на стол выкладывается достаточно большая кучка спичек (не менее 50). Каждый игрок при своем ходе берет спички из кучки. Нужно взять, по крайней мере, одну и не более, чем вдвое...
C++ Принадлежит ли точка заштрихованой области? C++ (VS 2010)
Вот получилось, но как добавить, чтобы проверять треугольники и окружность?? #include <iostream> using namespace std; int main() { setlocale (0, "Russian"); double x,y; ...
C++ Задачи с олимпиады http://www.cyberforum.ru/cpp-beginners/thread835718.html
Помогите разобраться с данными задачами с олимпиады: 1. Вводиться 3 остатка от деления числа на 971, 997 и 1033. Вывести это число. Например: I: 5 10 15 O: 835049324 Ограничения: 64 мб памяти,...
C++ Сформировать массив указанной размерности и типа 1. Сформировать массив указанной размерности и типа. 2. Выполнить необходимые преобразования. 3. Вывести входные и преобразованные данные, предоставив им соответствующие комментарии. 4.... подробнее

Показать сообщение отдельно
Delix
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 22
15.04.2013, 11:30  [ТС]
ForEveR,
1, Хорошо, исправляюсь
2. Сам учусь, поэтому столько косяков
3. Да, уже понял, Спасибо
Сейчас такой вариант, запись:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        sz = temp->t.name.size();
        file_obj.write((const char*)&sz,sizeof(size_t));
        file_obj.write(temp->t.name.data(), sz);
        
        sz = temp->t.family.size();
        file_obj.write((const char*)&sz,sizeof(size_t));
        file_obj.write(temp->t.family.data(), sz);
        
        sz = temp->t.brith_Date.size();
        file_obj.write((const char*)&sz,sizeof(size_t));
        file_obj.write(temp->t.brith_Date.data(), sz);
        
        sz = temp->t.tel.size();
        file_obj.write((const char*)&sz,sizeof(size_t));
        file_obj.write(temp->t.tel.data(), sz);
чтение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        file_obj.read((char*)sz, sizeof(size_t));
        char *temp_name = new char[sz + 1];
        file_obj.read(temp_name, sz);
        temp->t.name = temp_name;
        delete[] temp_name;
        
        file_obj.read((char*)sz, sizeof(size_t));
        char *temp_family = new char[sz + 1];
        file_obj.read(temp_family, sz);
        temp->t.family = temp_family;
        delete[] temp_family;
        
        file_obj.read((char*)sz, sizeof(size_t));
        char temp_bd[sz + 1];
        file_obj.read(temp_bd, sz);
        temp->t.brith_Date = temp_bd;
        delete[] temp_bd;
        
        file_obj.read((char*)sz, sizeof(size_t));
        char temp_tel[sz + 1];
        file_obj.read(temp_tel, sz);
        temp->t.tel = temp_tel;
        delete[] temp_tel;
запись происходит нормально, но чтение рушится после первой строки, точнее дебаггер даже ошибки не выдает, а после первой строчки не работает continue, т.е. с объявлением массива намудрил? Или с чтением в sz...

Добавлено через 20 минут
дебаггер виснет на этом месте, а при обычном запуске всё полчается, но вот так почему-то
Кликните здесь для просмотра всего текста
leo3? turtle
20_10_1980�3?
tel: 01
raph turtle
20_10_1980�3?
tel: 02

Откуда берет эти символы лишние?

Добавлено через 18 минут
например вот,
должно считывать 20_10_1980, считывает:
temp_bd 0x606050 "20_1-\\b0_1980\\377\\177"

Добавлено через 34 секунды
Причем, некоторые данные считываются нормально :\
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru