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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с string в С++ http://www.cyberforum.ru/cpp-beginners/thread343914.html
Переменная string str = "123456". Необходимо второй элемент переменной str (str) преобразовать в число и передать в переменную int i. Как это можно сделать?
C++ Модули программы Привет! Недавно начал изучать си++, и у меня возник такой вопрос: как разместить класс или функцию в отдельном модуле. http://www.cyberforum.ru/cpp-beginners/thread343895.html
Лучшая книга по с++ для новичков C++
Какая самая лучшая книга для новичков в c++ Вот несколько вариантов: С++ для начинающих. Шаг за шагом - Герберт Шилдт Полный справочник по C++ - Герберт Шилдт C++: базовый курс - Герберт Шилдт...
C++ Как инициализировать статический константный массив в классе?
Например, есть класс, которой статически хранит виды себя. Не могу понять как его инициализировать (Или может предложите хранить по другому?) class Object { private: static const Object...
C++ Доступ внука к Protected http://www.cyberforum.ru/cpp-beginners/thread343853.html
Здравствуйте, сегодня встал перед такой проблемой. Дело в том, что создал класс, наследующий public доступом по цепочке (внук). Но если сын мог использовать protected отца, я ожидал, что и внук...
C++ Перевернуть число Задача: Перевернуть введенное пользователем число и вывести на екран. Сначала я подсчитал количество цифр в числе: #include <iostream> #include <math.h> using namespace std; void main() { подробнее

Показать сообщение отдельно
Teravisor
31 / 31 / 3
Регистрация: 07.08.2011
Сообщений: 89
21.08.2011, 20:03  [ТС]
Цитата Сообщение от 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. Существует ли более быстрый способ заменить часть файла на аналогичную по размеру?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru