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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Andrey040601
4 / 4 / 3
Регистрация: 13.07.2014
Сообщений: 127
Завершенные тесты: 5
#1

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

05.09.2015, 22:13. Просмотров 479. Ответов 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. Но файл весь затирается, оставляя только это число. Как сделать так, чтобы число либо добавлялось, либо заменялось, оставляя все остальное?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2015, 22:13     Ios::ate затирает файл
Посмотрите здесь:

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

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

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

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

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

Почему метод класса затирает статическое поле - C++
Добрый день :) Я учу самостоятельна с++. Сейчас разбираю тему классы. Вот у меня возник вопрос по коду: #include<iostream> using...

Ввод матрицы из файла - затирает последний элемент предыдущей строки - C++
Странный эффект Содержимое вводимого файла- 1 2 3 4 5 6 int *a; a = new(2*3); for (i=0;i<2;i++) for...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
05.09.2015, 22:19     Ios::ate затирает файл #2
Ты же сам указываешь на флаг ios::ate. И в заголовке темы, и в сообщении.
Andrey040601
4 / 4 / 3
Регистрация: 13.07.2014
Сообщений: 127
Завершенные тесты: 5
05.09.2015, 22:21  [ТС]     Ios::ate затирает файл #3
Если его убрать, ничего не поменяется. А ios::app записывает в конец файла
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
05.09.2015, 22:25     Ios::ate затирает файл #4
ios::app,ios::ate,различия
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
05.09.2015, 22:30     Ios::ate затирает файл #5
Цитата Сообщение от castaway Посмотреть сообщение
Ты же сам указываешь на флаг ios::ate.
Цитата Сообщение от Andrey040601 Посмотреть сообщение
Если его убрать, ничего не поменяется. А ios::app записывает в конец файла
Цитата Сообщение от Andrey040601 Посмотреть сообщение
Как сделать так, чтобы число либо добавлялось, либо заменялось, оставляя все остальное?
У тебя мысли не связаны.
Andrey040601
4 / 4 / 3
Регистрация: 13.07.2014
Сообщений: 127
Завершенные тесты: 5
05.09.2015, 22:35  [ТС]     Ios::ate затирает файл #6
Нужно так. В файле уже есть некий текст(код, в данном случае). Нужно добавить свой в начало. Просто, у меня стирается весь файл, оставляя только добавленный
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
05.09.2015, 22:39     Ios::ate затирает файл #7
Andrey040601, если ты внятно опишешь проблему, то шансов её решить будет больше.
Andrey040601
4 / 4 / 3
Регистрация: 13.07.2014
Сообщений: 127
Завершенные тесты: 5
05.09.2015, 22:56  [ТС]     Ios::ate затирает файл #8
Код выше стирает вообще все содержимое файла, заменяя новым. Как сделать, чтобы новый текст можно было вводить в файл(в начало), НЕ стирая ВСЕ старое содержимое?
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
05.09.2015, 23:02     Ios::ate затирает файл #9
Средствами ОС - никак.
Читаешь содержимое файла, пишешь "начало", пишешь содержимое файла.
Avazart
Эксперт С++
7119 / 5296 / 273
Регистрация: 10.12.2010
Сообщений: 23,418
Записей в блоге: 17
06.09.2015, 00:25     Ios::ate затирает файл #10
Цитата Сообщение от Andrey040601 Посмотреть сообщение
Как сделать, чтобы новый текст можно было вводить в файл(в начало),
Что бы старый тест смещался, никак.
Andrey040601
4 / 4 / 3
Регистрация: 13.07.2014
Сообщений: 127
Завершенные тесты: 5
06.09.2015, 07:46  [ТС]     Ios::ate затирает файл #11
А заменяя старую строку новой, но прм этом оставляя последующие строки?
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
06.09.2015, 08:40     Ios::ate затирает файл #12
Цитата Сообщение от Andrey040601 Посмотреть сообщение
А заменяя старую строку новой, но прм этом оставляя последующие строки?
Только в бинарном режиме функцией write, но для этого нужно знать размер заменяемого участка.
nmcf
5267 / 4587 / 1538
Регистрация: 14.04.2014
Сообщений: 18,220
06.09.2015, 08:43     Ios::ate затирает файл #13
Можно записывать поверх, но тогда длина новой и старой строк должна быть одинаковой, иначе либо захватишь следующую, либо останется кусок от старой.
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
06.09.2015, 09:28     Ios::ate затирает файл #14
Как вариант, что нужно записать в начало, пишите в другой файл, потом в него же добавьте содержимое из старого файла. Старый под снос, новый переименовываем.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2015, 10:55     Ios::ate затирает файл
Еще ссылки по теме:

не работает ios::in|ios::out - C++
Здорова господа!!! Пытаюсь разобраться с файлами в С++ от есть код: #include <iostream> using std::cout; using std::cin; ...

ios::nocreate - C++
Доброго вечера. 13 строка ,а именно "nocreate" подчеркивается красным,подскажите в чем ошибка? #include <cstdlib> #include <iostream>...

IDE на IOS - C++
Люди, подскажите пожалуйста, есть ли на ios среда разработки С++, как C4Droid на андроид, чтобы покодить можно было. А то ПК нет....

Приложение под iOS - C++
Вообщем прислали тестовое задание: написать простенькое приложение под iOS, используя родные элементы граф интерфейса iOS. И в конце...

setiosflags(ios::left) - C++
Почему setiosflags(ios::right) выравнивает числа по правой стороне а setiosflags(ios::left) не выравнивает по левой? for (int n=1;...


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

Или воспользуйтесь поиском по форуму:
Ferrari F1
=^_^=
553 / 440 / 93
Регистрация: 27.01.2015
Сообщений: 2,553
Записей в блоге: 1
Завершенные тесты: 1
06.09.2015, 10:55     Ios::ate затирает файл #15
Andrey040601,
C++
1
ofstream fout("D:\\a.com", ios::out | ios::binary | ios::ate);
зачем для объекта ofstream писать ios::out?
Ios::ate затирает файл

C++
1
2
3
ofstream fout("D:\\a.com", ios::binary | ios::ate);
fout.seekp(0, ios::beg);
fout.put(num);
Yandex
Объявления
06.09.2015, 10:55     Ios::ate затирает файл
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru