Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787

Запись двоичного кода в блокнот

17.11.2014, 18:07. Показов 3160. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, как можно прочитать двоичной код файла, и записать его в блокнот ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.11.2014, 18:07
Ответы с готовыми решениями:

Как организовать побитовую запись двоичного кода (Хаффман) ?
Пытаюсь реализовать алгоритм Хаффмана, который будет сжимать текстовый файл. Уже построено дерево tree, у которого есть: tree->simvol...

Запись двоичного кода в файл
Доброго времени суток. Реализую алгоритм Хаффмана по заданию и не совсем понимаю, как записать биты в файл. У меня есть буфер в 16 бит, при...

Запись в блокнот
Как на с# создать блокнот, в который будет записываться каждое нажимание клавиши? Такой себе кейлоггер, но нужно по другим причинам. Не...

11
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
17.11.2014, 18:09
например так. Прочитать файл в бинарном режиме с записью результата в string Пользуй поиск.
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
17.11.2014, 18:26  [ТС]
Выдает ошибку:
Code
1
C:\Users\*****\Desktop\c++\main.cpp|20|error: aggregate 'std::ostringstream oss' has incomplete type and cannot be defined|
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
17.11.2014, 18:31
Ты всю программу покажи.
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
17.11.2014, 18:33  [ТС]
Одну ошибку поборол, теперь появилась другая:
Code
1
C:\Users\*****\Desktop\C++\main.cpp|14|error: missing template arguments before '(' token|
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <windows.h>
#include <fstream>
#include <bitset>
#include <sstream>
#include <iostream>
using namespace std;
 
int main()
{
    ifstream ifs("input.dat", ifstream::binary);
    ostringstream oss;
    unsigned char n;
    ifs.read((char *)&n, 1);
    oss << bitset(n);
    string s = oss.str();
    system("PAUSE");
    return 0;
}
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
17.11.2014, 18:34
Всю программу в студию. Мы же не видим, что ты там наваял.
0
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
17.11.2014, 18:43  [ТС]
Весь код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <windows.h>
#include <fstream>
#include <bitset>
#include <sstream>
#include <iostream>
using namespace std;
 
int main()
{
    ifstream ifs("input.dat", ifstream::binary);
    ostringstream oss;
    unsigned char n;
    ifs.read((char *)&n, 1);
    oss << bitset(n);
    string s = oss.str();
    system("PAUSE");
    return 0;
}
Ошибка на 14 строке:
Code
1
C:\Users\*****\Desktop\C++\main.cpp|14|error: missing template arguments before '(' token
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
17.11.2014, 18:50
tdo22, только при чём тут работа с файлами? Ты просто не знаешь, как применяется bitset!
C++
1
 oss << bitset<8>(n);
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
17.11.2014, 18:51
Лучший ответ Сообщение было отмечено tdo22 как решение

Решение

Это я про <8> забыл.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <sstream> 
#include <bitset>
#include <fstream>
#include <iostream>
#include <cstdlib>
 
int main()
{
    std::ifstream ifs("input.dat", std::ifstream::binary);
    std::ostringstream oss;
    unsigned char n;
    ifs.read((char *)&n, 1);
    oss << std::bitset<8>(n);
    string s = oss.str();
    cout << s << endl;
 
    system("pause");
    return 0;
}
Считывает 1 байт и выводит на экран, надо цикл сделать и выводить в файл, если нужно.
1
14 / 14 / 13
Регистрация: 14.02.2013
Сообщений: 787
17.11.2014, 18:59  [ТС]
Спасибо, но как сделать так, чтоб мне выводило весь код файла, а не только конец ?

Добавлено через 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
#include <windows.h>
#include <fstream>
#include <bitset>
#include <sstream>
#include <iostream>
using namespace std;
 
int main()
{
    ifstream ifs("1.txt", ifstream::binary);
    ostringstream oss;
    unsigned char n;
    while(!ifs.eof())
    {
        ifs.read((char *)&n, 1);
        oss << bitset<8>(n);
        string s = oss.str();
        cout << s;
    }
 
    system("PAUSE");
    return 0;
}
Но теперь весь двоичной код "слипился", и вышло что-то вроде этого:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
01101000001101000010110101100111001101010111001001101110000011010000101000001101
00001010001100100011000100110000001101110011001000110000001100000011100000110100
00110010001101110011000100001010000011010000101000110101011010110111010001101001
00101101001101110110100001101000001101000010110101100111001101010111001001101110
00001010000011010000101000110101011010110111010001101001001011010011011101101000
01101000001101000010110101100111001101010111001001101110000011010000101000001101
00001010001100100011000100110000001101110011000100110010001100000011000000111000
00110100001100100011011100110001000010100000110100001010001101010110101101110100
01101001001011010011011101101000011010000011010000101101011001110011010101110010
01101110000010100000110100001010001101010110101101110100011010010010110100110111
01101000011010000011010000101101011001110011010101110010011011100000110100001010
00001101000010100011001000110001001100000011011100110001001110010011001000110000
00110000001110000011010000110010001101110011000100001010000011010000101000110101
Для продолжения нажмите любую клавишу . . .
как сделать пробел между ними ?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
17.11.2014, 19:01
Лучший ответ Сообщение было отмечено tdo22 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <sstream> 
#include <bitset>
#include <fstream>
#include <iostream>
#include <cstdlib>
 
int main()
{
    std::ifstream ifs("input.dat", std::ifstream::binary);
    std::ostringstream oss;
    unsigned char n;
    while (true)
    {
    ifs.read((char *)&n, 1);
    if (ifs.eof()) break;
    oss << std::bitset<8>(n) << " ";
    }
    string s = oss.str();
    cout << s << endl;
 
    system("pause");
    return 0;
}
Только файл большой не бери.
1
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,536
Записей в блоге: 1
17.11.2014, 19:04
tdo22, а где в коде файла пробелы? Ты о чём вообще? Ты по ходу какое-то левое представление о файлах имеешь! Мешаешь в кучу бинарное и текстовое представление файла... Пробелы бывают только в тексте!

Добавлено через 33 секунды
А... в смысле пробелы между байтами...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.11.2014, 19:04
Помогаю со студенческими работами здесь

Запись в блокнот от 0 до 255 в двоичной СС
Здравствуйте, как написать цикл который запишет в блокнот числа от 0 до 255 в двоичной системы счисления ?

Запись в текстовый документ (блокнот)
Как осуществить запись в текстовый документ . программа тестирования , необходимо сделать так если на вопрос ответили неправильно , то этот...

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

Вывод на экран в 2ой системе и запись в блокнот
как сделать чтоб был вывод на екран в 2ой с.с., и запись данных этих в блокнот. кусок кода напишите пожалуйста, я разберусь куда и...

Запуск двоичного кода
Доброго времени суток. У меня есть некоторой бинарный код: 55 48 89 e5 b8 05 00 00 00 5d c3 Он же в ассемблере: push rbp mov...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru