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

fstream: открытие на запись - C++

Восстановить пароль Регистрация
Другие темы раздела
C++/CLI WinForms Open File Dialog http://www.cyberforum.ru/cpp-beginners/thread343917.html
Добрый день! Не подскажите, как работать с диалогами открытия/сохранения файлов. Хотя-бы как отрыть файл, то есть получить строку с именем файла из диалога.
C++ Работа с string в С++ Переменная string str = "123456". Необходимо второй элемент переменной str (str) преобразовать в число и передать в переменную int i. Как это можно сделать? http://www.cyberforum.ru/cpp-beginners/thread343914.html
Модули программы C++
Привет! Недавно начал изучать си++, и у меня возник такой вопрос: как разместить класс или функцию в отдельном модуле.
Лучшая книга по с++ для новичков C++
Какая самая лучшая книга для новичков в c++ Вот несколько вариантов: С++ для начинающих. Шаг за шагом - Герберт Шилдт Полный справочник по C++ - Герберт Шилдт C++: базовый курс - Герберт Шилдт Как программировать на C++ - Х. М. Дейтел, П. Дж. Дейтел Какие лучше? Или предложите какие нибудь другие книги. P.S не нуб,изучал PHP,HTML,C#...С++ мне понадобится в будущем так как моя профессия...
C++ Как инициализировать статический константный массив в классе? http://www.cyberforum.ru/cpp-beginners/thread343876.html
Например, есть класс, которой статически хранит виды себя. Не могу понять как его инициализировать (Или может предложите хранить по другому?) class Object { private: static const Object object_types; int i1, i2; public: static const int COUNT_OBJECT_TYPES = 6; ... };
C++ Доступ внука к Protected Здравствуйте, сегодня встал перед такой проблемой. Дело в том, что создал класс, наследующий public доступом по цепочке (внук). Но если сын мог использовать protected отца, я ожидал, что и внук сможет...компилятор ругается (множественное наследование применять не хочу). Пришлось сунуть поля из protected в public. Подскажите пожалуйста, быть может, я что-то упустил? Каким способом можно было... подробнее

Показать сообщение отдельно
Teravisor
30 / 30 / 3
Регистрация: 07.08.2011
Сообщений: 89
21.08.2011, 20:03  [ТС]     fstream: открытие на запись
Цитата Сообщение от Gepar Посмотреть сообщение
Перед тем как дописывать к файлу информацию сделай так
C++
1
file.seekp(0,ios::end);
Курсор будет гарантированно в конце файла и никаких магических 4х байт (символов) убираться нигде не будет.
Во-первых это - аналог открытия с флагом ios::app.
Во-вторых, я нигде про 4 байта не говорил. У меня обрезает ВЕСЬ файл как если бы был применен ios::trunc (как я понимаю его действие).
В третьих, я уже сказал, мне надо перезаписать КУСОК файла без копирования его всего, и причина этому - размер файла. Для этого ios::app(и его аналоги) НЕ годятся.
Пожалуйста, когда отвечаете, прочитайте повнимательнее что я хочу, и в чем у меня вопрос, т.к. это не имеет к моим вопросам никакого отношения.

Итак, переформулирую вопросы более конкретно:
1. Почему при открытии только с флагом ios::out оно файл обрезает(т.е. удаляет его содержимое)?
2. В следствие вопроса 1. - зачем нужен ios::trunc, если файл при ios::out оно и без него обрезает?
3. Почему при открытии с флагами ios::out|ios::in не обрезает и как работает перезапись части файла в таком режиме?
4. В следствие вопроса 3. - работает ли перезапись в режиме ios::out|ios::in быстрее, чем полное копирование файла с соответствующими изменениями?
5. Существует ли более быстрый способ заменить часть файла на аналогичную по размеру?
 
Текущее время: 11:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru