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

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

Восстановить пароль Регистрация
 
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
25.03.2012, 09:20     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #1
Здравствуйте форумчане. В общем вот как можно сформулировать задание.
Есть файл с каким либо содержанием. Заменить первые 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++
Дано натуральное число n. Отбросить в нем все цифры, стоящие правее самой правой единицы либо оставить число без изменений, если единицы в нем нет C++
C++ ios::app,ios::ate,различия
C++ При вводе имени абонента или его номера выводить его фамилию, номер телефона и адрес.
Удаление файла без возможности его удаления. Подскажите, с чего начать. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
25.03.2012, 09:26     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #2
ios::app всегда пишет в конец
C++
1
2
fstream fout("c:\\symb.txt");
fout << "DOG";
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
25.03.2012, 09:29  [ТС]     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #3
retmas, я это понял, но если открыть файл как вы показали, то он откроется по умолчанию в режиме ios::out, а значит удалит всю информацию в файле. А мне надо инфу в файле сохранить, причем не используя всяких массивов и файлов дополнительных как временное хранилище данных из этого файла.
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
25.03.2012, 09:31     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #4
нет он откроется в режиме ios_base::in | ios_base::out, если существует, и сделает замену в текущую позицию
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
25.03.2012, 09:38  [ТС]     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #5
Цитата Сообщение от retmas Посмотреть сообщение
ios_base::in | ios_base::out
Спасибо, это помогло. +100500
retmas, где можно почитать про режимы работы с файлами и их сочетания?
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
25.03.2012, 09:56     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии #6
думаю во многих книгах это описано.
если вам известно как пользоваться режимами в Си (ф-ии fopen), то легко увидите аналогию
Yandex
Объявления
25.03.2012, 09:56     ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии
Ответ Создать тему
Опции темы

Текущее время: 10:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru