Форум программистов, компьютерный форум 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() { подробнее

Показать сообщение отдельно
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
22.08.2011, 14:03
Цитата Сообщение от Teravisor Посмотреть сообщение
мне надо перезаписать КУСОК файла без копирования его всего
ну да, учитесь читать что вам уже написали:
Цитата Сообщение от Gepar Посмотреть сообщение
открой файл, а потом установи курсор куда тебе нужно чтобы начать дописывать файл используя seekp(позиция).
Информация которая будет после того что вы дописывали останется и никуда не денется.
Пример с мнемокодом:
file:123456789
file.seekp(3)
file<<бла
file:123бла789

Сделав так никуда ничто не будет отбрасываться, только это надо попробовать прежде чем задавать 100500ый раз тот же вопрос.

Цитата Сообщение от Teravisor Посмотреть сообщение
1. Почему при открытии только с флагом ios::out оно файл обрезает(т.е. удаляет его содержимое)?
Потому что файл открывается для ВЫВОДА.
Цитата Сообщение от Teravisor Посмотреть сообщение
2. В следствие вопроса 1. - зачем нужен ios::trunc, если файл при ios::out оно и без него обрезает?
Потому что гладиолус отбрасывается содержимое файла, никто нигде никому обрезаний не делает.
Цитата Сообщение от Teravisor Посмотреть сообщение
3. Почему при открытии с флагами ios::out|ios::in не обрезает и как работает перезапись части файла в таком режиме?
Потому что файл открывается и для ВВОДА и для ВЫВОДА, смысл открывать для ВВОДА с файла пустой файл (если отбросить его содержимое?).

Цитата Сообщение от Teravisor Посмотреть сообщение
4. В следствие вопроса 3. - работает ли перезапись в режиме ios::out|ios::in быстрее, чем полное копирование файла с соответствующими изменениями?
Быстрее чем что? Чем создание нового файла и запись его с нуля полностью? Ну конечно работает быстрее. Проще открыть файл размером в 1 гб для чтения и записи и изменив 1 байт закрыть его чем перезаписать новый изменённый файл.
Цитата Сообщение от Teravisor Посмотреть сообщение
5. Существует ли более быстрый способ заменить часть файла на аналогичную по размеру?
Интересно каким образом не открывая файл для вывода вы собрались заменить его часть, разве что ваш винт может быстро заменить содержимое битыми секторами и это и впрямь будет быстрее чем вы будете редактировать файл.
А вообще все 5 вопросов описаны же в книге, я считаю что все ваши 5 вопросов вы могли и сами решить прочитав соотв. главу в учебнике по с++.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru