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

перетирание байтов с использованием seekp + write в бинарных файлах - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Объектно-ориентированная программа для расчета арифметического выражения http://www.cyberforum.ru/cpp-beginners/thread949840.html
Необходимо написать объектно-ориентированную программу, которая принимает на вход арифметическое выражение (только сложение и вычитание с отрицательными и положительными числами), переводит все в двоичную систему, там поэлементно через массив производит вычисления и выдает ответ в двоичной и десятичной системе. Кол-во пробелов не ограничено и не указано. При вводе отрицательных чисел ставятся...
C++ Паскаль.Разработать программу для вычисления арифметического выражения и вывода полученного результата Ребят помогите Разработать программу для вычисления арифметического выражения и вывода полученного результата.Соответствующие исходные данные ввести с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread949828.html
библиотека для работы с mysql C++
Здравствуйте, хочу научится работать в C++ Bulder XE с базами данными, не встроенными а допустим с Mysql 5.1, MS SQL Server. Хотел бы книгу найти, но не могу найти. Предложите библиотеки либо книги где все подробно рассказывается.
Синтаксические ошибки C++
Всем привет !!! помогите пожалуста найти синтаксические ошибки в коде float x, y; //cout ;<< "x="; cin >> x; if(x < 0) { y = 1 / (2*x+10); cout << y; }
C++ Работа с классами (в главном классе создать указатель на экземпляр другого класса) http://www.cyberforum.ru/cpp-beginners/thread949790.html
Недавно начал изучение С++, в частности ООП. В связи с чем у меня есть вопрос как в главном классе можно создать указатель на экземпляр другого класса, причем такой, чтоб во всех экземплярах главного класса был один и тот же указатель. То есть существует много экземпляров главного класса, все указатели которого указывают на единственный экземпляр другого класса.
C++ printf sprintf не понятно Почему в printf строка отображается нормально, а sprintf вместо строки вставляет "(null)" ? что нужно сделать со строкой что бы она нормально копировалась в sprintf? char * какая-то строка полученная с бд printf(строка) пишет "строка" sprintf(... "строка: %s.", строка) получается "строка: (null)." подробнее

Показать сообщение отдельно
warloc69
78 / 78 / 4
Регистрация: 28.10.2011
Сообщений: 219
07.09.2013, 17:36     перетирание байтов с использованием seekp + write в бинарных файлах
Привет, возник вопрос с записью бинарных файлов.
пишу в файл данные таким кодом :
C++
1
2
3
4
5
6
7
8
9
10
ofstream file1;    
file1.open("file.bin",ios::out|ios::binary|ios::trunc);
    int intVar =156;
    float floatVar  =-34.995;
    long longVar = 10;
    file1.write((char*)&intVar,sizeof(intVar));
    file1.write((char*)&floatVar,sizeof(floatVar));
    file1.seekp(sizeof(int));
    file1.write((char*)&longVar,sizeof(longVar));
file1.close();
читаю из файла таким кодом:
C++
1
2
3
4
5
6
7
8
ifstream file;
file.open("file.bin",ios::in|ios::binary);
    int intVar;
    float floatVar;
    long longVar;
    file.read((char*)&intVar,sizeof(int));
    file.read((char*)&longVar,sizeof(long));
    file.read((char*)&floatVar,sizeof(float));
Ожидаемый результат : после использования все переменный нормально инициализированы согласно порядку записи.

Полученный результат :
1) записали intVar , floatVar
2) с помощью file1.seekp(sizeof(int)); установили курсор на запись в файле после intVar
3) записали longVar
4) floatVar затёрлось longVar.

Вопрос, как использовать file1.write после file1.seekp так что бы дальнейшие данные не затирались а сдвигались?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru