Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для Andrey040601
5 / 5 / 3
Регистрация: 13.07.2014
Сообщений: 129

Ios::ate затирает файл

05.09.2015, 22:13. Показов 3232. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Код:

C++
1
2
3
4
5
ofstream fout("D:\\a.com", ios::out | ios::binary | ios::ate);
 
    fout.seekp(0, ios::beg);
 
    fout.put(num);
В начало файла должно быть добавлено num. Но файл весь затирается, оставляя только это число. Как сделать так, чтобы число либо добавлялось, либо заменялось, оставляя все остальное?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.09.2015, 22:13
Ответы с готовыми решениями:

Разница между ios::ate и ios::app
Здравствуйте, кто нить может поконкретнее и человеческим языком объяснить в чем разница между ios::ate и ios::app ? Был бы весьма...

ios::app,ios::ate,различия
Есть такая формулировка: Отсюда https://www.cyberforum.ru/post441043.html Посмотрим другую формулировку: Отсюда...

Ios::ate и ios::app
Добрый день, тут на форуме вычитал, что открытие файла с включенным битом ios::app автоматически ставит указатель чтения и записи на конец...

20
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
05.09.2015, 22:19
Ты же сам указываешь на флаг ios::ate. И в заголовке темы, и в сообщении.
0
 Аватар для Andrey040601
5 / 5 / 3
Регистрация: 13.07.2014
Сообщений: 129
05.09.2015, 22:21  [ТС]
Если его убрать, ничего не поменяется. А ios::app записывает в конец файла
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,028
Записей в блоге: 1
05.09.2015, 22:25
ios::app,ios::ate,различия
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
05.09.2015, 22:30
Цитата Сообщение от castaway Посмотреть сообщение
Ты же сам указываешь на флаг ios::ate.
Цитата Сообщение от Andrey040601 Посмотреть сообщение
Если его убрать, ничего не поменяется. А ios::app записывает в конец файла
Цитата Сообщение от Andrey040601 Посмотреть сообщение
Как сделать так, чтобы число либо добавлялось, либо заменялось, оставляя все остальное?
У тебя мысли не связаны.
0
 Аватар для Andrey040601
5 / 5 / 3
Регистрация: 13.07.2014
Сообщений: 129
05.09.2015, 22:35  [ТС]
Нужно так. В файле уже есть некий текст(код, в данном случае). Нужно добавить свой в начало. Просто, у меня стирается весь файл, оставляя только добавленный
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
05.09.2015, 22:39
Andrey040601, если ты внятно опишешь проблему, то шансов её решить будет больше.
0
 Аватар для Andrey040601
5 / 5 / 3
Регистрация: 13.07.2014
Сообщений: 129
05.09.2015, 22:56  [ТС]
Код выше стирает вообще все содержимое файла, заменяя новым. Как сделать, чтобы новый текст можно было вводить в файл(в начало), НЕ стирая ВСЕ старое содержимое?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
05.09.2015, 23:02
Средствами ОС - никак.
Читаешь содержимое файла, пишешь "начало", пишешь содержимое файла.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.09.2015, 00:25
Цитата Сообщение от Andrey040601 Посмотреть сообщение
Как сделать, чтобы новый текст можно было вводить в файл(в начало),
Что бы старый тест смещался, никак.
0
 Аватар для Andrey040601
5 / 5 / 3
Регистрация: 13.07.2014
Сообщений: 129
06.09.2015, 07:46  [ТС]
А заменяя старую строку новой, но прм этом оставляя последующие строки?
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
06.09.2015, 08:40
Цитата Сообщение от Andrey040601 Посмотреть сообщение
А заменяя старую строку новой, но прм этом оставляя последующие строки?
Только в бинарном режиме функцией write, но для этого нужно знать размер заменяемого участка.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.09.2015, 08:43
Можно записывать поверх, но тогда длина новой и старой строк должна быть одинаковой, иначе либо захватишь следующую, либо останется кусок от старой.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,028
Записей в блоге: 1
06.09.2015, 09:28
Как вариант, что нужно записать в начало, пишите в другой файл, потом в него же добавьте содержимое из старого файла. Старый под снос, новый переименовываем.
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
06.09.2015, 10:55
Andrey040601,
C++
1
ofstream fout("D:\\a.com", ios::out | ios::binary | ios::ate);
зачем для объекта ofstream писать ios::out?


C++
1
2
3
ofstream fout("D:\\a.com", ios::binary | ios::ate);
fout.seekp(0, ios::beg);
fout.put(num);
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
06.09.2015, 11:04
ну и как было сказано, желаемое надо делать через элемент-функцию write, а не через put
C++
1
fout.seekp(0, ios::beg).write(reinterpret_cast(const char*)(&num), sizeof(num));
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
06.09.2015, 11:13
Ferrari F1, что это за конструкция? Помимо того что она не компилируется, она как то гипотетически может решить проблему?
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
06.09.2015, 11:14
castaway,
Каюсь, не проверял.
Но написано, что seekp и write оба возвращают ostream& => можно осуществить каскадный вызов методов?
http://www.cplusplus.com/refer... eam/write/
http://www.cplusplus.com/refer... eam/seekp/
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
06.09.2015, 11:16
Я не о вызовах, а о том что "перемотка" в начало тут никак не поможет.
0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
06.09.2015, 11:19
castaway,
ну тогда мой косяк. Значит, через вспомогательный файл, как было уже написано.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.09.2015, 11:19
Помогаю со студенческими работами здесь

Ios_base::ate
Здравствуйте, не могу понять, почему следующий код выводит в место 123456 просто 456. #include "stdafx.h" #include...

Ios::out не открывает файл
Доброй день! Столкнулся с такой проблемой, при вызове функции программа не открывает файл void ObjMass::saveFile() { ofstream...

Установочный файл iOS
Какой установочный файл у ios. Как называется ?? и где его нужно искать в своем проекте?? А компилляционный файл какой?? где находится??

Elfinder затирает $
Добрый вечер коллеги! Подключил в проект elfinder, который файловый менеджер. <!-- elFinder CSS (REQUIRED) --> ...

Перерисовка затирает всё
приветствую всех! такая трабла: при вызове Invalidate() в timer1_Tick() все стирается, хотя, по-моему, должно перерисовываться с помощью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru