| 
| 
 | Вопрос # 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. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |