![]() |
|
Модераторы: bsa |
![]()
|
|
| bobik02 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 26.11.2007 Репутация: нет Всего: 14 |
в книжке Р. Лафоре "Объектно-Ориентированное Программирование В С++" 4-е издание
ст. 561 - 563 (там же есть и пример), говориться что объект класса fstream может быть использован одновременно как входной так и выходной.
Но, при таком "раскладе" , работать не хочет т.е. выражение
Но если убрать бит режима открытия файла app (тоже самое и с ate, ), тогда нормально. Почему так происходит ? Это сообщение отредактировал(а) bobik02 - 11.7.2008, 21:57 -------------------- Have a nice day |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
ate и app помещают указатель позиции файла в его конец, а это значит, что читать уже нечего (EOF), поэтому и устанавливается этот бит. Если тебе нужно писать в конец и читать с начала, то открывай без этих модификаторов и используй seekp для установки позиции записи в конец.
|
|||
|
||||
| bobik02 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 26.11.2007 Репутация: нет Всего: 14 |
Что ж с этим я как бы понял, спасибо!
Но например когда я создаю объект класса ofstream, то если такого файла не существует, он создаться "автоматически"(что удобно). А вот когда объект класса fstream, то нет. почему так ? -------------------- Have a nice day |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 2 Всего: 121 |
Если ты создаёшь объект класса fstream, то предполагается, что ты собираешься читать и писать, а что можно прочесть из несуществующего файла, либо из пустого, только что созданного? -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| bobik02 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 26.11.2007 Репутация: нет Всего: 14 |
а если сначала в файл будет производиться запись, только потом чтение . -------------------- Have a nice day |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 2 Всего: 121 |
bobik02, а откуда fstream знать, что сначала, а что потом? Приоритет операций одинаковый. Может это можно указать с пом. к-л флага, но я такого не припоминаю.
Это сообщение отредактировал(а) W4FhLF - 12.7.2008, 18:16 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| AlterMann |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 25.10.2006 Репутация: нет Всего: нет |
Б.Страуструп. Язык программирования С++:
вот тот самый trunc - обрезает файл до нулевой длины, и создаёт его (файл) |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |