|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.03.2011, 20:20 | #1 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
Чтение из файла классом ifstream
Решил освоить файловые операции С++, до этого пользовался сишными методами. Возникла проблема - не считываются переменные типа string:
Код:
Где я напортачил? Последний раз редактировалось Кипящий чайник; 05.03.2011 в 08:08. |
04.03.2011, 21:51 | #2 |
Форумчанин
Регистрация: 31.01.2011
Сообщений: 160
|
то что вы делаете называется сериализацией, естественно делается она не так, ибо в жизни все сложнее
во-первых когда вы делаете input_file.read((char *) &two, sizeof(one)); вы возлагаете большие надежды на то что все будет как вы ожидаете. Реально запись содержимого класса сильно зависит от того как компилятор его представляет его в памяти запись и последующее прочтения std::string вообщето сомнительно, это связано с тем, что контейнер хранит в себе не только поля, но и указатель на кучу в которой выделены данные (в отсутствии инициализации он будет черт знает куда указывать), аллокатор, который он использует итд так вот когда вы запишете объект максимум что скопирую указатели, ни внешние зависимости, ни в вашем случае состояние объекта (в смысле поведения) передано не будет input_file.fail() - есть bool operator!() input_file.close(); - у fstream есть деструктор, который сам закроет файл Последний раз редактировалось Stilet; 05.03.2011 в 08:56. |
04.03.2011, 22:50 | #3 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
Меня интересует не это, а как записать в файл переменную типа string
|
04.03.2011, 22:56 | #4 |
:D
Форумчанин
Регистрация: 26.09.2010
Сообщений: 570
|
Код:
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery |
05.03.2011, 00:03 | #5 |
Линуксоид
Участник клуба
Регистрация: 31.07.2009
Сообщений: 1,403
|
Респект за SDL.
Но тут такое дело, логичней сделать operator<< для твего класса и ofstream. Смотри пример здесь: http://www.learncpp.com/cpp-tutorial...-io-operators/
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su |
05.03.2011, 08:05 | #6 |
Форумчанин
Регистрация: 17.12.2009
Сообщений: 101
|
Спасибо. SDL штука сишная, на линуксе я программирую с ней на Си. А вот MS Visual C++ 6.0 почему-то жутко глючит, компилируя сишный код. Решил использовать функции и классы С++
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чтение из файла С++ | Michahodrev | Помощь студентам | 2 | 18.12.2010 23:47 |
С++ Чтение из файла | sir.andrey | Помощь студентам | 9 | 15.10.2010 16:00 |
Чтение из файла(ifstream) C++ | Alex1991 | Помощь студентам | 2 | 22.03.2010 20:23 |
Чтение из файла | utrnjhyfgjktjy | Помощь студентам | 9 | 30.01.2010 17:41 |
чтение из файла. | aschak | Общие вопросы C/C++ | 9 | 30.12.2008 15:24 |