Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 48

Ввод/вывод двоичных файлов

20.06.2011, 17:12. Показов 1276. Ответов 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;
}
в частности интересуют 40, 57,70,75,91 строчки.В общем все с вводом и выводом
вот условие задачи так может пригодится
Дан двоичный файл, содержащий расположенные по строкам M двумерных
вещественных массивов, каждый размером L X K ( L строк, K строк ).
Каждый элемент массива помещен в отдельную запись.
Составить программу, формирующую этот файл (например, 3 массива
размером 2 на 3).
Сформировать из этого файла другой, литерный файл, в котором кажда
запись представляет собой столбец двумерного массива.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.06.2011, 17:12
Ответы с готовыми решениями:

Ввод-вывод файлов
подскажите код программы, которая считывает числа из файла и выводит эти же числа в другой файл в обратном порядке

Ввод/вывод чисел из файлов
1) Дан файл input.in с 2 числами, разделенными пробелом. Какой самый легкий и быстрый способ записать эти числа в переменные a и b соотв. ...

Потоковый ввод / вывод файлов
Помогите пожайлуйста исправить ошибки в коде. В функции OemToChar пишет &quot;char*&quot; не совместим с параметром &quot;LPWSTR&quot; #include...

3
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
20.06.2011, 23:11
Открыл книжку и прочёл:
"Работая с двоичными файлами, вы считываете и записываете данные непосредтсвенно в файл вместо того, чтбы преобразовывать данные в текстовые представления- то, что делают потоковые операторы (<< и >>)"
Так что надо тебе использовать наверное read, тогда в бинарном файле будут бинарные же данные.
0
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 48
21.06.2011, 10:44  [ТС]
Цитата Сообщение от kravam Посмотреть сообщение
Открыл книжку и прочёл:
"Работая с двоичными файлами, вы считываете и записываете данные непосредтсвенно в файл вместо того, чтбы преобразовывать данные в текстовые представления- то, что делают потоковые операторы (<< и >>)"
Так что надо тебе использовать наверное read, тогда в бинарном файле будут бинарные же данные.
я так понимаю file.read/file.write или как то иначе?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,698
21.06.2011, 18:09
они самые
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.06.2011, 18:09
Помогаю со студенческими работами здесь

Форматированный ввод/вывод с использованием текстовых файлов
ЗДРАВСТВУЙТЕ. МЕНЯ ЗОВУТ ДАША. У МЕНЯ ПРОБЛЕМА, Я НЕ ЧЕГО НЕ ПОНИМАЮ В С++, А У МЕНЯ ЗАЧЕТ, МОЖЕТ КТО ТО МНЕ СМОЖЕТ СДЕЛАТЬ МОЁ ЗАДАНИЕ: ...

Работа со строками, ввод с файла и вывод в несколько файлов
Здравствуйте, не знаю как решить задачу, прошу помочь:scratch: В общем есть несколько строк, которые мы вводим с текстового файла, в них...

Русско-английский словарь. Ввод данных с двух файлов. Вывод результата в файл
Здравствуйте, сама задача: Даны два текстовых файла - в первом расположены русские слова, во втором их англоязычный перевод. Создать...

Файловый ввод/вывод. Какие форматы файлов можно читать в файловых потоках?
Заранее простите за тупой вопрос, но какие форматы файлов можно считать с помощью #include &lt;iostream&gt; #include &lt;fstream&gt; ...

Заменить в программе, переводящую строку в двоичный код, консольный ввод/вывод на файловый ввод/вывод
Добрый день! Помогите, пожалуйста, с программой. Программа считывает строку с клавиатуры и переводит её в двоичный код. затем наоборот...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru