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

Read and write binary file - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ После отключения компа удалилась последняя версия проекта http://www.cyberforum.ru/cpp-beginners/thread1769346.html
Было экстренное отключение компа. Потом решил посмотреть .cpp файл. Хотя я сохраняю по несколько раз в день, там была только очень старая версия..... При открытии самого проекта вылетело такое окно:
C++ Конструктор переноса при наследовании в шаблонном классе Здравствуйте. Возможно ли как-то реализовать то, что я пытаюсь сделать? template<typename T> class Interface { protected: T *pointer; virtual void move(Interface &&i2) = 0; http://www.cyberforum.ru/cpp-beginners/thread1769319.html
Найти произведение элементов массива, принадлежащих интервалу C++
Ввести одномерный массив А , вывести его. Найти произведение его элементов, принадлежащих интервалу . Значением этого произведения заменить первый и предпоследний элементы массива.
C++ Заменить при выводе массива каждый второй элемент остатком от деления на 10
Как при выводи массива заменить остатком от деления каждый второй элемент на 10. #include <iostream> #include <iterator> using namespace std; int main() { int n,i; int y; int a; // double y;
C++ Заменить первый и предпоследний элементы массива произведением его элементов, принадлежащих интервалу http://www.cyberforum.ru/cpp-beginners/thread1769219.html
Ввести одномерный массив А , вывести его. Найти произведение его элементов, принадлежащих интервалу . Значением этого произведения заменить первый и предпоследний элементы массива.
C++ Atoi для двоичной системы Есть такое? Ну т.е. atoi переводит десятичное число из текста в десятичное число, а мне нужно двоичное... char str = "00000001"; int num = ?; или char str; itoa(1, str, 2); подробнее

Показать сообщение отдельно
BeginerC
0 / 0 / 0
Регистрация: 26.05.2016
Сообщений: 7
23.06.2016, 13:45  [ТС]
Теорктически я догадываюсь как это сделать, а вот практически не получается.
Пробовал сделать что-то типа этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void ReadAll(Message& msgobj)
{
    cout << "Read file ..." << endl;
    fstream in("txt.dat", ios::binary | ios::in | ios::out);
    msgobj.message = new char[msgobj.obj.messageSize];
    while(in.read((char*) &msgobj.obj, sizeof(msgobj.obj)))
        in.read((char*) msgobj.message, msgobj.obj.messageSize);
        {
            if(msgobj.obj.to == me && msgobj.obj.received == false)
            {
                cout << msgobj.message << endl;
                long pos = in.tellp();
                in.seekp(pos - msgobj.obj.messageSize);
                in.seekp(pos - sizeof(msgobj.obj));
                msgobj.obj.received = true;
                in.write((char*) &(msgobj.obj.received), sizeof(msgobj.obj.received));
            }
        }
 
            in.close();
}
Но это не работает. Я так понимаю, у меня проблема в том, что я неправильно перемещаюсь по байтам. Скажите как нужно делать правильно?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru