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

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

Войти
Регистрация
Восстановить пароль
 
dimcoder
Полярный
455 / 428 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
#1

ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии - C++

25.03.2012, 09:20. Просмотров 911. Ответов 5
Метки нет (Все метки)

Здравствуйте форумчане. В общем вот как можно сформулировать задание.
Есть файл с каким либо содержанием. Заменить первые 3 буквы в этом файле на слово "DOG", не использую дополнительных файлов, массивов и.т.п.
Короче пробовал сделать так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdlib>
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    ofstream fout("c:\\symb.txt", ios::app);      //Открыть файл в ражиме append
    fout.seekp(ios::beg);                         //Поставить указатель на начало
    fout << "DOG";
    return EXIT_SUCCESS;
}
Казалось бы должно работать, но нет - пишет в конец файла. Видимо в режиме append так нельзя. Есть альтернативы, предложения?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2012, 09:20     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии
Посмотрите здесь:

Удаление файла без возможности его удаления. Подскажите, с чего начать. - C++
есть задачка удаление файла без возможности его удаления, подскажите с чего начать? и нужно ли использовать WinAPI ? может что...

Разница между 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 автоматически ставит указатель чтения и записи на конец...

Различия в использовании seekg и seekp при работе с fstream - C++
Если я использую класс fstream, тогда для перемещения внутри файла без разницы какую функцию использовать (seekg() и seekp())??? ...

При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес. - C++
Создать телефонный справочник на 10 имен, адресов и номеров. При вводе имени абонента или его номера выводить его фамилию, номер телефона и...

При запуске программы указать адрес файла и посчитать количество слов в нем - C++
Ввод, вывод. При запуске программы указать адрес файла и посчитать количество слов в нем! Где-то ошибка при вводе адреса ... помогите! ...

Файлы C++. Запись в конец файла, без его перезаписи - C++
Доброго времени суток, уважаемые форумчане! Изучаю работу с файлами в C++ с использованием fstream. Возник вопрос: как сделать так, чтобы...

При выводе из файла происходит дублирование информации - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;windows.h&gt; using namespace std; int main() { setlocale(0,&quot;&quot;); ...

Дано натуральное число n. Отбросить в нем все цифры, стоящие правее самой правой единицы либо оставить число без изменений, если единицы в нем нет - C++
Дано натуральное число n. Отбросить в нем все цифры, стоящие правее самой правой единицы либо оставить число без изменений, если единицы в...

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

Написать программу удаления из ведомости информации о студентах - C++
В сведения хранится информация по задолженностям студентов: ФИО., Группа, курс, предмет. Написать программу удаления из ведомости...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
25.03.2012, 09:26     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #2
ios::app всегда пишет в конец
C++
1
2
fstream fout("c:\\symb.txt");
fout << "DOG";
dimcoder
Полярный
455 / 428 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
25.03.2012, 09:29  [ТС]     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #3
retmas, я это понял, но если открыть файл как вы показали, то он откроется по умолчанию в режиме ios::out, а значит удалит всю информацию в файле. А мне надо инфу в файле сохранить, причем не используя всяких массивов и файлов дополнительных как временное хранилище данных из этого файла.
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
25.03.2012, 09:31     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #4
нет он откроется в режиме ios_base::in | ios_base::out, если существует, и сделает замену в текущую позицию
dimcoder
Полярный
455 / 428 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
25.03.2012, 09:38  [ТС]     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #5
Цитата Сообщение от retmas Посмотреть сообщение
ios_base::in | ios_base::out
Спасибо, это помогло. +100500
retmas, где можно почитать про режимы работы с файлами и их сочетания?
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
25.03.2012, 09:56     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #6
думаю во многих книгах это описано.
если вам известно как пользоваться режимами в Си (ф-ии fopen), то легко увидите аналогию
Yandex
Объявления
25.03.2012, 09:56     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии
Ответ Создать тему
Опции темы

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