|
Вопрос # 6 688/ вопрос открыт / |
|
С ++. Создание и запись бинарного файла?
Задача состоит в том, чтобы создать файл и записать его данными, но есть структура параметров, которая должна соблюдаться:
n -индекс (4 байта)
timestamp - временная метка (4 байта)
unsigned int Ak - значение напряжения аналогового канала (2 байта)
unsigned int SM -значение напряжения дискретного канала (2 байта)
Каналов может быть много, как будут поступать данные пока неизвестно.
Допустим 3 аналоговых канала 2 дискретных
Файл должен записываться
n timestamp анал. каналы дискр.
4 байта 4 байта 2 байта 2 байта 2 байта 2 байта 2 байта
Я новичок в с++. Подскажите, возможно, есть более разумный вариант заполнения данных каналов(чтоб не с консоли).
Да и вообще, мои ошибки. И как проверить соблюдается ли структура.
Приложение: Переключить в обычный режим- {{code}} #include "stdafx.h"
- #include <iostream>
- #include <fstream>
-
- using namespace std;
-
-
- int _tmain(int argc, _TCHAR* argv[])
- {
-
- // Create Binary file
- struct Binaryfile{
- int n; //4 byte
- int timestamp;//4 byte
- unsigned int Ak;//2 byte
- unsigned int SM;//2 byte
- };
- Binaryfile s1,analog,discret;
- s1.n =3;
- s1.timestamp=45;
- int countAnalCh=2;
- int countDiscrCh=3;
- analog.Ak=0;
- discret.SM=0;
-
- fstream
binary_file("D:\Struct\Struct\ComtradeFormat\fileConfiguration.dat",ios::out|ios::binary|ios::app);
- if(!binary_file)
- {
- cout << "Cannot open file.n";
- return 1;
- }
- binary_file.write((char*)(&s1),sizeof(s1));//write number sample and timestamp
-
- for (int i=0; i<countAnalCh;i++)
- {
- cout <<"Value analog channel: ";
- cin >> analog.Ak;
- binary_file.write((char*)(&analog.Ak),sizeof(analog.Ak));
-
- }
- for (int j=0; j<countDiscrCh;j++)
- {
- cout <<"Value discret channel: ";
- cin >> discret.SM;
- binary_file.write((char*)(&discret.SM),sizeof(discret.SM));
-
- }
-
- binary_file.close();
-
-
- return 0;
- } {{/code}}
 |
Вопрос задала: kytcenochka (статус: Посетитель)
Вопрос отправлен: 2 апреля 2018, 13:45
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 2 апреля 2018, 15:02; участников в обсуждении: 1.
|
min@y™ (статус: Доктор наук), 2 апреля 2018, 15:02 [#1]:
Тот, кто придумал текст задания - мудак.
int и unsigned int занимают по 4 байта.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|