|
Вопрос # 6 687/ вопрос открыт / |
|
Я новичок в с++. Подскажите, что можно исправить, да и вообще какие еще есть варианты решения такой задачи.
Необходимо создать и записать бинарный файл.
Файл должен содержать 4 поля, определенных размеров:
int n - номер выборки (должен занимать 4 байта)
int timestamp - Временная метка (должен занимать 4 байта)
unsigned int Ak- значения аналоговых сигналов ( 2 байта)
unsigned int SM - значения дискретных сигналов ( 2 байта)
Структура не должна нарушаться!
Каким более разумным способом можно заполнить значение каналов (чтоб не с консоли)? Так как количество каналов может изменяться, откуда будут поступать данные пока неизвестно.
Приложение: Переключить в обычный режим- // Binary.cpp : Defines the entry point for the console application.
- //
- #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 analog channel: ";
- cin >> discret.SM;
- binary_file.write((char*)(&discret.SM),sizeof(discret.SM));
-
- }
-
- binary_file.close();
-
-
- return 0;
- }
-
-
 |
Вопрос задала: kytcenochka (статус: Посетитель)
Вопрос отправлен: 30 марта 2018, 16:00
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 30 марта 2018, 17:57; участников в обсуждении: 1.
|
min@y™ (статус: Доктор наук), 30 марта 2018, 17:57 [#1]:
Тот, кто придумал текст задания - мудак.
int и unsigned int занимают по 4 байта. Поэтому каждая запись файла будет размером 16 байт, а не 12.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|