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

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

Войти
Регистрация
Восстановить пароль
 
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

Не работает seekp() - C++

06.01.2013, 17:44. Просмотров 667. Ответов 3
Метки нет (Все метки)

Здорова господа!!!
У меня вообщем проблемка я от отрываю файл для редактирования
ios::app курсор в конце файла
затем делаю seekp(0) курсор должен как бы переместиться в начало файла
затем делаю отступ от начала на n-байт(символов) seekp(3)
затем идет запись поверх имеющейся записи в файле ob6ekt <<"blabla"

Казалось бы должно работать но почемуто у меня записывается в конец файла, а не в то место где указывает указатель файла????

Как перемещать указатель по файлу?!
Если можно пример в студию плиз?!

Вот часть кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
if(addAccount==account)
        {
            cout <<"Account - "<<addAccount<<" imeets9 v faile oldmast.dat"<<endl;
            double old=account;
            double newBalance=balance+addBalance;
            cout <<"Novui balans "<<newBalance<<endl;
            int pos = Read.tellg();
            cout <<"pos = "<<pos<<endl;
            cout <<"pos-sizeof(balance)= "<<pos-sizeof(balance)<<endl;
            //cout <<"reinterpret_cast= "<<sizeof(balance)<<endl;
            //zapisat6 i soxranit6 v fail novoe znachenie
            //1. sozdaem novui fail dl9 zapisi
            ofstream Write("oldmast.dat", ios::app);
            //2.proverit6 otkrutie faila
            if(!Write)
            {
                cerr <<"fail no open (f.addTrans.Read)"<<endl;
                exit(1);
            }
            Write.seekp(1, ios::beg);//ystanovka ykazatel9 v nachalo.
            pos=Write.tellp();
            cout <<"pos= "<<pos<<endl;
            //Write.seekp(pos*sizeof(balance));
            //perezapisat6 dannue
            Write <<newBalance<<endl;
            
            
            
        }
да еще функция tellp() показывает что указатель по файлу якобы перемещается, меняет свое значение, но всерамно записывает в конец файла. Хелп!

п.с. (срочно нужно выучить за две недели с++)

Добавлено через 49 минут
я от маленький кусок кода сделал готовы можете попробовать в начало всерамно не записывает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
using std::ios;
using std::cerr;
#include <fstream>
using std::ofstream;
using std::ifstream;
#include <cstdlib>
using std::exit;
 
int main()
{
    //peremechenie kyrsora dl9 zapisi v faile
    ofstream write("oldmast.dat",ios::app);
    if(!write)
    {
        cerr <<"don't open file"<<endl;
        exit(1);
    }
    cout <<"Ykazatel6 f raven= "<<write.tellp()<<endl;//36
    write.seekp(1);
    write <<"9wa";
    cout <<"Ykazatel6 f raven= "<<write.tellp()<<endl;//4 no toka zapisuvaet v kones faila a doljno nachalo perepisat6
    
       return 0;
}
Ну же чо тут знатоков нету?! Помогите новичку!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2013, 17:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не работает seekp() (C++):

Seekp() Не слушается - C++
Добрый день . Изучаю C++ по книге . Использую Visual studio 2013. При решении задач возникла трудность с использованием функции...

методы seekg и seekp - C++
void my_work(const char *str, double KV) throw (myError) { fstream File(str, ios::in | ios::out | ios::binary); if(File.is_open()) ...

Разница между seekg() и seekp() - C++
В чём же разница? Вот допустим открыл я файл: fstream file(&quot;trans.dat&quot;,ios::out|ios::in|ios::binary); Какая разница между...

Некорректная установка seekg и seekp в многострочном файле - C++
Добрый день! Не могу разобраться с мракобесием, которое начинает твориться с seekg и seekp, если в файле появляется переход на следующую...

перетирание байтов с использованием seekp + write в бинарных файлах - C++
Привет, возник вопрос с записью бинарных файлов. пишу в файл данные таким кодом : ofstream file1; ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
NoMasters
Псевдослучайный
1754 / 1097 / 72
Регистрация: 13.09.2011
Сообщений: 3,134
06.01.2013, 18:02 #2
Цитата Сообщение от ninja2 Посмотреть сообщение
ios::app
Цитата Сообщение от ninja2 Посмотреть сообщение
записывает в конец файла
Удивительно, да? Вы пробовали читать документацию?
ios::app All output operations are performed at the end of the file, appending the content to the current content of the file.
1
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
06.01.2013, 18:27  [ТС] #3
Да я не сильно в английском шарю. Я думал что функции seekp может курсор перемещать не зависимо от ios::app.
А как правильно нужно мне записать ?
Я от записал ios::in|ios::out.

Добавлено через 23 минуты
Я вообщето читал за ios::app, io::ate , ios::in . Но я не думал что там как написано так и нужно понимать.
Вот ios::in|ios::out я от никак не опйму как это вырожение означате, в часности что палочка означает?
Палочка это операция или? или что это? Как это выражение нужно понимать приоритет операци? От если файл открылся то значит файл открывается как ios::in, ios::out отбрасывается. Или наоборот если ios::in не может открыть файл тоесть файла не существует то срабатывает ios::out и создает файл новый. А щас я смотрю оно работает сразу вместе одновременно. Тоесть я понимаю через палочку можно допустим записать ios::in|ios::out|ios::app и чо это нам даст? режим для чтения|записи|в конец файла ??? Какаето чепуха получается. Как можно читать конец файла????
Разьясните новичку. А то я сам не разберусь.
0
booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
06.01.2013, 18:30 #4
http://www.cplusplus.com/reference/o...ostream/seekp/

через хром открываешь жмакаешь перевести
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2013, 18:30
Привет! Вот еще темы с ответами:

Какие различия у функций seekg и seekp для работы с файлами? - C++
Есть такая формулировка: seekg случайный доступ к потоку ввода seekp случайный доступ к потоку вывода Отсюда...

ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии - C++
Здравствуйте форумчане. В общем вот как можно сформулировать задание. Есть файл с каким либо содержанием. Заменить первые 3 буквы в этом...

Почему функция seekp() работает только с классом ostringstream и не хочет использоваться с ofstream - C++
Всем привет! Уважаемые программисты, подскажите пожалуйста, почему функция seekp() работает только с классом ostringstream и никак не...

Мышь работает через раз, то есть запустил ОС - мышь не работает, перезагрузил - мышь работает - Windows 7
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно работало. Но с недавних пор мышь стала работать через раз....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.01.2013, 18:30
Ответ Создать тему
Опции темы

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