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

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

17.11.2014, 18:07. Показов 3062. Ответов 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,531
Записей в блоге: 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,531
Записей в блоге: 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,531
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru