Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти все стоки и источники орграфа https://www.cyberforum.ru/ cpp-beginners/ thread1473655.html
Источником орграфа назовем вершину, от которой достижимы все другие вершины, стоком - вершину, достижимую от всех других вершин. Найти все стоки и источники данного орграфа
C++ Удаление последнего элемента Дека
Все работает, кроме удаления последнего элемента. Подскажите пожалуйста, что не так? #include <cstdlib> #include <iostream> using namespace std; class dek { public: char number;
C++ Классы "Многоугольник", "Правильный многоугольник" Создать базовый класс «многоугольник», описав в нём функции задания количества и длин сторон, вывода параметров многоугольника на экран, нахождения периметра. Породить от него класс «правильный многоугольник» с числом вершин 3<=N<=6, переопределив в нём функции задания количества и длин сторон и нахождения периметра https://www.cyberforum.ru/ cpp-beginners/ thread1473652.html C++ Codeblocks и модули https://www.cyberforum.ru/ cpp-beginners/ thread1473643.html
нужно написать программу с модульным файлом, в котором три функции, мне вроде все понятно, но создаю файл с простой функцией #ifndef MOD1_H_INCLUDED #define MOD1_H_INCLUDED int SampleAddInt(int i1, int i2){ return i1 + i2; } #endif // MOD1_H_INCLUDED #include <stdio.h> #include <iostream>
Посчитать длину отрезка C++
Помогите, пожалуйста:cry: Условие на картинке. Задача: написать программу, которая будет считать длину отрезка (расстояние между точками А и B). Программу нужно написать использую классы.
C++ Динамический список строк. Найти ошибку в коде #include <iostream> #include <list> // подключаем заголовок списка // заголовок итераторов #include <locale> #include <string.h> #include <stdio.h> using namespace std; struct stroki { char stroka; stroki *next; }; https://www.cyberforum.ru/ cpp-beginners/ thread1473638.html
C++ Запись и чтение данных многомерного массива в файл Как реализовать, подскажите пожалуйста, к примеру у меня есть массив, каждый элемент массива тоже массив, если файл с данными о массиве не существует, то записать эти данные в файл, если существует такой файл, то считать с него данные и присвоить их массиву. https://www.cyberforum.ru/ cpp-beginners/ thread1473628.html Определить есть ли в системе дорог город, куда можно попасть из любого другого, проезжая не более 100км C++
Всем привет.Помогите с программой: Задана система односторонних дорог. Определить, есть ли в ней город, куда можно попасть из любого другого города, проезжая не более 100 км.
C++ Задача по решению последовательности взятой из текстового документа Ребята, прошу помощи. Сдал преподавателю программу, которая создает рандомные последовательности, и предлагает их решить. Если пользователь не правильно продляет последовательность, то он предлагает исправить пять раз. Учитель попросил переделать программу так, что бы последовательности были не рандомные, а брались из текстового документа. Считывать с документа он должен так: 3 123 4 5... https://www.cyberforum.ru/ cpp-beginners/ thread1473604.html C++ Чем отличается вызов функции setlocale(0, "") от setlocale(LC_ALL,"")? https://www.cyberforum.ru/ cpp-beginners/ thread1473591.html
Например printf(setlocale(0, "")); cout << endl; printf(setlocale(LC_ALL, "")); выдают одинаковый результат (ну, на моей русской машине): Russian_Russia.1251 Russian_Russia.1251
Указатель на структуру C++
Добрый день, struct list_head { struct list_head *next, *prev; }; 1) зачем такое вообще? 2) типом указателя могло быть ключевое слово struct + T Я в шоке. Источник linux
C++ Неправильно работает функция strcmp c русскими буквами https://www.cyberforum.ru/ cpp-beginners/ thread1473573.html
Пытаюсь сравнить строку с литералом. void main() { setlocale(LC_ALL, "Rus"); string s1; cin >> s1; int k = (strcmp(s1.c_str(), "й")); cout << k;
0 / 0 / 0
Регистрация: 09.06.2015
Сообщений: 3
0

Работа с двоичным файлом - C++ - Ответ 7740598

09.06.2015, 19:31. Показов 725. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Фомирование из входного двоичного файла “cm.dat” сортированоой коллекции структур с двумя полями (char[8],short), упорялоченный по второму полю.
Структура cm.dat:
Двоичный файл “cm.dat” содержит 2 части:
- первая часть содержит количество параметров – 2 байта и список элементов структур (имя параметра – 8 байт, номер параметра – 2 байта, ссылка на тексты данного параметра – 2 байта);
- вторая часть файла содержит тексты параметров.
Нас интересует только информация первой части. Необходимо учесть, что числовые значения представлены в прямом коде.

Во-первых,после записи в структуру имя параметра отображается неправильно(то есть если сразу выводить имя параметра,то оно отображается верно). Во-вторых номер параметра отображается неправильно. Хотя,когда считываю первые 2 байта с количеством параметров,то количество верное.

Вот программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#pragma once
 
#include <fstream>
#include "objects.h"
#include <iostream>
#include "string.h"
#include "conio.h"
#include <sstream>
#include <string>
#include <cstdint>
 
using namespace std;
 
struct cm
    {
        char* a;
        unsigned short b;
    };
 
class MyCollection :
    public sortedCollection
{
public:
MyCollection(cc_Index limit, cc_Index delta) : sortedCollection(limit, delta) {
 
 
            duplicates = True;
 
        }
        virtual void *keyOf( void *item )
        {
            return &(((cm*)item)->b);
        }
 
        virtual int compare (void *k1, void *k2 )
            {
                return *((unsigned short*)k1) - *((unsigned short*)k2);
                
            } 
 
            
        
        void print(ofstream& f1){
            f1<<"Q="<<count<<endl;
            cm* dat;
            for( int i = 0; i < count; i++ ){
                dat = (cm *)at(i);
                f1   << dat->a << " " << dat->b << endl;
            }
            f1.close();
        }
 
};
 
 
void main()
{
    char buf[8]; 
    unsigned short count;
    ofstream f1("cm.txt");
    ifstream file("CM.dat",ios::binary);
    if (!file)
    {
        cout<<"error"<<endl;
    }
    else
    {
        cout<<"OK"<<endl;
    }
    MyCollection msc(4,2);
    file.read(buf,2);
    count = (buf[0]<<8) | (buf[1]);
    cout<<count<<endl;
    _getch();   
    for (int i = 0; i < count ; i++)
    {
        cm* dat = new cm();
        file.read(buf,8);
        for (int j = 0; j < 8; j++)
        {
            if (buf[j] == ' ')
            buf[j] = 0;
            
        }
        dat->a = new char[9];
        strcpy(dat->a,buf);
        file.read(buf,2);
        unsigned short a;
        a = (buf[0]<<8) | (buf[1]);
        dat->b = a;
        file.read(buf,2);   
        msc.insert(dat);
    }
    
 
    file.close();
    msc.print(f1);
    
     _getch();
 
}
Добавлено через 1 час 13 минут

Вернуться к обсуждению:
Работа с двоичным файлом C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2015, 19:31
Готовые ответы и решения:

Работа с двоичным файлом
Условие: Дан файл, представляющий собой телефонную книжку некоторого молодого человека, т.е....

Работа с двоичным файлом
Ребят помогите. Создать двоичный файл и записать в него степени числа 3. Вывести на экран...

Работа с двоичным файлом: Перевести содержание файла в поток байт
Существует файл D:\proba.txt в себе он содержит: 68 11 00 00 00 00 71 00 00 00 09 01 C8 01 00 00...

работа с двоичным кодом
Задача не сложная но материала на ту тему Я на просторах интернета так и не нашел( Через небольшую...

0
09.06.2015, 19:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2015, 19:31
Помогаю со студенческими работами здесь

Битовые поля и работа с двоичным числом без логических операций
Есть 2 числа. Например, 10110 и 11100 в дв. сист. сч. Нужно разряд первого числа сравнить с тем...

GUI Работа с текстовым файлом, лог файлом не мешая системе
Хочу написать прогу которая будет по таймеру искать в тхт - лог файле сообщение об ошибке. Например...

Является двоичным файлом, а не текстовым
'C:\Users\\\\\Resources\template.mdb&quot; является двоичным файлом, а не текстовым. Не знаю как...

CS2015 - Является двоичным файлом, а не текстовым
Здравствуйте! При компиляции программы возникла ошибка: Ошибка CS2015 'E:\Around the World\Around...

Работа с файлом (корректный код, некорректная работа программы)
Для записи и чтения файла использую разные функции. По одиночке они работают нормально. Вставляю...

Работа с матрицей. Работа с файлом
Обновить в входном файле данные строк/столбцов; выбор строки/столбца и позиция строки/столбца...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru