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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vladislav5
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 48
#1

Создание двоичного файла - C++

19.06.2011, 10:17. Просмотров 713. Ответов 0
Метки нет (Все метки)

Такая заморочка,нужно создать двоичный файл,вроде сделал все по правилам,но преподу не нравится,то что последовательность цифр в двоичном файле не должна отображаться в виде цифр,а должна отображаться в виде символов(что-то вроде когда не подходят кодировки)
вот условие задачи :
Дан двоичный файл, содержащий расположенные по строкам M двумерных
вещественных массивов, каждый размером L X K ( L строк, K строк ).
Каждый элемент массива помещен в отдельную запись.
Составить программу, формирующую этот файл (например, 3 массива
размером 2 на 3).
Сформировать из этого файла другой, литерный файл, в котором кажда
запись представляет собой столбец двумерного массива.


Вот мой код
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <locale>
#include <iterator>
#include <conio.h>
#include <string>
#include <vector>
#include <algorithm>
#include <time.h>
 
using namespace std;
 
 
#define M 3
#define L 2
#define K 3
#define MAX_VALUE 100
 
 
typedef vector<vector<double> > matrix_2;
typedef matrix_2::iterator m2Iter;
typedef vector<matrix_2> matrix_3;
typedef matrix_3::iterator m3Iter;
 
int main()
{
    
    srand(static_cast<unsigned>(time(NULL)));
        setlocale(LC_ALL, "Russian");
 
 
    cout << "Введите имя создаваемого файла" << endl;
    string fileName;
    cin >> fileName;
 
 
    {
        
        ofstream file(fileName.c_str(), ios::trunc | ios::binary);
        
        if (file.fail())
        {
            cout << "Невозможно создать файл " << fileName << endl;
            _getch();
            return EXIT_FAILURE;
        }
 
        
        matrix_3 v(M, matrix_2(L, vector<double>(K)));
 
        // сгенерируем созданную матрицу  и сразу выводим ее в файл;
        for (m3Iter i = v.begin(), end = v.end(); i != end; ++i)
        {
            for (m2Iter j = i->begin(), end = i->end(); j != end; ++j)
                for (vector<double>::iterator k = j->begin(), end = j->end(); k != end; ++k)
                    file << (*k = rand() % MAX_VALUE) << " ";
            file << endl;
        }
    
        file.close();
    }
    
 
    cout << "Файл " << fileName << "создан " << endl << endl;
 
 
    {
        
        ifstream ifile(fileName.c_str(), ios::binary);
 
    
        cout << "Введите имя второго файла" << endl;
        cin >> fileName;
        ofstream ofile(fileName.c_str(), ios::trunc);
 
        if (ofile.fail())
        {
            cout << "Не удалось создать файл " << fileName << endl;
            _getch();
            return EXIT_FAILURE;
        }
 
        
        matrix_3 v(M, matrix_2(L, vector<double>(K)));
 
        
        for (m3Iter i = v.begin(), end = v.end(); i != end; ++i)
            for (m2Iter j = i->begin(), end = i->end(); j != end; ++j)
                for (vector<double>::iterator k = j->begin(), end = j->end(); k != end; ++k)
                    ifile >> *k;
        ifile.close();
 
        
        for (m3Iter i = v.begin(), end = v.end(); i != end; ++i)
        {
            vector<double> tmp(L);
            for (size_t k = 0; k < K; ++k)
            {
                vector<double> tmp(L);
                for (size_t j = 0; j < L; ++j)
                {
                    tmp[j] = i->operator[](j)[k];
                    ofile << i->operator[](j)[k] << " ";
                }
                
                ofile << " ";
            }
            ofile << endl;
        }
    
        ofile.close();
        cout << "Файл " << fileName << " создан" << endl;
    }
 
    _getch();
    return EXIT_SUCCESS;
}
Добавлено через 14 часов 9 минут
ну что неужели никто не знает,программисты!)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2011, 10:17     Создание двоичного файла
Посмотрите здесь:

Создание двоичного файла на С++ - C++
Здравствуйте. Помогите в решении проблемы. На С++. Создать и заполнить двоичный файл. Слова в двоичном файле хранятся в массивах ...

Создание файла из двоичного кода - C++
Здравствуйте, у меня есть переменная типа std::string В ней хранится двоичной код, как мне создать файл (.txt), и записать в него этот...

Создание и обработка двоичного файла - C++
Задание: Создать файл с информацией о клиентах банка: ФИО, номер счета, принято вклад, выдано вклад, остаток,дата проведения операции....

В начало двоичного файла целого типа дописать нечетные элементы этого файла. - C++
Вот прога для записи четных файлов...в конец Мне нужно в начало....нечетные...помогите разобраться как сделать!!!:drink: #include...

Запись двоичного файла - C++
Ребята, проясните, пожалуйста, ситуацию с двоичным выводом в файл. Конкретно двоичный, а не бинарный - как это осуществить в моём случае. ...

Чтение двоичного файла - C++
Есть файл, без типа,просто файл. Содержит набор чисел (размером по 4 б - int ) нужно его прочитать. Пишу: FILE *fp; if ((fp =...

Считывание из двоичного файла - C++
Ребята, помогите пожалуйста! Из двоичного файла нужно считать числа, отвечающие определённым условиям, например, только положительные. Их...

Использование двоичного файла - C++
Подскажите, пожалуйста, что такое двоичные файлы, и с чем их едят?) и как с помощью их можно реализовать хранение данных? а то я в...

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

Чтени из двоичного файла - C++
Помогите пожалуйста. Проблема такая: В двоичном файле дан массив. нужно прочитать его и скопировать в текстовый файл. Считать у меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru