Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Ввод звука и его последующий вывод в записывающее устройство https://www.cyberforum.ru/ cpp/ thread2272947.html
На днях захотелось создать прогу, что-то на подобии эффекта рации. Программа по моей задумке должна будет по нажатии кнопки перехватывать звук с микрофона, накладывать на него эффект дисторшн (или что-либо похожее) и выводить его записывающее устройство (которое, я так понимаю, можно будет создать этой программой и выбирать его как микрофон). Посоветуйте, пожалуйста, известные вам библиотеки...
C++ Метод покоординатного спуска
Исходное задание: требовалось написать программу, реализующую метод покоординатного спуска, на примере функции двух переменных f(x,y). x^2+y^2+z^2=16. Нужно прокомментировать код, начиная с 82 строки по 127. # include <math.h> // библиотеки # include <stdio.h> # include <conio.h> # include <stdlib.h> # include <iostream> #include <windows.h> using namespace std;
C++ Парсинг IP из двоичного файла https://www.cyberforum.ru/ cpp/ thread2272633.html
День добрый. Как произвести парсинг IP адреса который расположен где-то в тексте двоичного файла? Были задумки, находить первое вхождение цифры и от неё откладывать N байтов и сравнивать полученную строку регуляркой. Прокатит ли такое?
C++ Построить график функции ax2+bx+c https://www.cyberforum.ru/ cpp/ thread2272169.html
Построить график функции ax2+bx+c. a, b и c вводятся с клавиатуры. Рядом с графиком вывести х и у, по которым он строился.
C++ парсинг std::cout в дочерном потоке C++
Всем привет! Приложение в главном потоке выводит в stdout (std::cout) лог информацию. В дочерном потоке запускается цикл, который должен при появлении новой строки в stdout, парсить и если соответствует маске то ложить в буфер - std::vector<std::string>. Как считывать с std::cout строки? Я найшел только перенаправление в другой поток. Но я не хочу блокировать стандартный вывод. или файл...
C++ Порядок инициализации ООП-приложения https://www.cyberforum.ru/ cpp/ thread2270449.html
Есть с не самой простой структурой классов приложение. Необходимо написать нечто в консоль ПЕРЕД инициализацией всего. Но если нужный код прописать в начале main, оказывается, что надпись выводится не сразу, а чуть позже середины времени загрузки. Как я понимаю, это связано с инициализацией статических классов и всего, на что они завязаны. Как мне написать это нечто ("Loading...", да-да, так...
C++ Требует ли стандарт noexcept деструкторов для классов STL? Я проверил вот такую программку на трех онлайн-компиляторах: #include <iostream> #include <string> #include <vector> #include <list> #include <set> #include <unordered_map> struct A {}; https://www.cyberforum.ru/ cpp/ thread2269888.html C++ Почему Program received signal SIGSEGV, Segmentation fault. ?
#include <iostream> #include "Tree.hpp" using namespace std; int main() { element *head; Add(head, 10);
C++ Приведение подобных слагаемых в алгебраических выражениях Нужно написать программу приведения подобных, например: вводим 2х-2y+4x-4yz и должны получить 6x-2y-4yz. Помогите пожалуйста, с чего начать? "У меня пока только такая идея: вводим строку, берем переменные, сравниваем их, если есть одинаковые то константы перед ними складываются(вычитаются), ну и формируем новую строку с получившимися значениями" Только как взять переменные с их константами?... https://www.cyberforum.ru/ cpp/ thread2266282.html C++ Блокировка кнопки PrtScr: "ссылка на неразрешенный внешний символ _main" https://www.cyberforum.ru/ cpp/ thread2266061.html
Здравствуйте, подскажите не работает блокировка PrtScr. Ошибка 1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup 1>c:\users\sergey\documents\visual studio 2010\Projects\633\Debug\633.exe : fatal error LNK1120: 1 неразрешенных внешних элементов #include "stdafx.h" #include <windows.h> MSG msg;
Файловый Менеджер с ООП C++
Помогите сделать обычный файловый менеджер с помощью:Классов,наследования,и тд.Файловый менеджер должен иметь возможность показывать содержимое дисков, создавать папки/файлы, удалять папки/файлы, переименовывать пап- ки/файлы, копировать/переносить папки/файлы, вычислять размер папки/файла, производить поиск по маске (с поиском по подпапкам) и так далее. заранее спасибо
C++ D3D чит для игры c++ https://www.cyberforum.ru/ cpp/ thread2264989.html
Подскажите пожалуйста, почему при таком способе внедрения в игру, игру крашит. Буду очень благодарен если переделаете код. Моя цель внедрить это в игру но игру крашит((((( Код(способ внедрения, если будет надо могу весь код скинуть): int Brain(void) { DWORD hD3D, adr, *vtbl; hD3D=0; do { hD3D = (DWORD)GetModuleHandle("d3d9.dll");
0 / 0 / 0
Регистрация: 04.07.2018
Сообщений: 2
0

Текст в BMP и обратно - C++ - Ответ 12525932

07.07.2018, 09:56. Показов 610. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую, знатоки. Такя проблема: сделал программу для записи текста в бмп изображение, и обратно, но в результате выводятся какие-то левые символы. Где проблема?
Запись
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#include "stdafx.h" 
#include <iostream> 
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
 
#pragma pack(push,1)
typedef struct tagBITMAPFILEHEADER {
    unsigned short  bfType;
    unsigned long   bfSize;
    unsigned short  bfReserved1;
    unsigned short  bfReserved2;
    unsigned long   bfOffBits;
} BITMAPFILEHEADER;
#pragma pack(pop)
 
#pragma pack(push,2)
typedef struct tagBITMAPINFOHEADER {
    unsigned int    biSize;
    long        biWidth;
    long        biHeight;
    unsigned short  biPlanes;
    unsigned short  biBitCount;
    unsigned int    biCompression;
    unsigned int    biSizeImage;
    long        biXPelsPerMeter;
    long        biYPelsPerMeter;
    unsigned int    biClrUsed;
    unsigned int    biClrImportant;
} BITMAPINFOHEADER;
#pragma pack(pop)
 
int GetBitValue(unsigned char B, int N)
/* Получает значение N-ого бита в байте B
Возвращает 1 или 0 (в зависимости от значения Бита)
*/
{
    int k = 256;
 
    for (int i = 0; i < N; i++) k /= 2;
 
    if ((B & k) != 0) return 1;
    else return 0;
}
 
unsigned char WriteBitToByte(int Bit, unsigned char B)
/* Записывает в байт B на последнюю позицию бит Bit
*/
{
    unsigned char A = 00000001;
    unsigned char Result = B;
 
    if (Bit == GetBitValue(B, 8)) return B;
    else if (Bit == 1) return Result = Result | A;
    else if (Bit == 0) return B - A;
 
    return NULL;
}
int *ByteToBinary(unsigned char val)
/* Разбивает исходный Байт на биты. Возвращает массив из восьми элементов
Каждый Nй элемент соответствует Nму биту.
Принимает значения 1 или 0
*/
{
    int *mass = new int[8];
    int t, i;
    for (t = 128, i = 0; t > 0; t /= 2, i++)
    {
        if ((val & t) != 0) mass[i] = 1;
        else if ((val & t) == 0) mass[i] = 0;
    }
    return mass;
}
unsigned char BinaryToByte(int *mass)
/* Собирает из массива битов один целый байт и возвращает его.
Входной параметр: массив из восьми элементов, соответсвтующих
битам Байта
*/
{
    unsigned char Mask = 00000001;
    unsigned char Result = 00000000;
    unsigned char Mask2;
 
    int j = 0;
    for (int i = 7; i > -1; i--, j++)
    {
        if (mass[i] == 1) {
            Mask2 = (Mask << (j));
            Result = Result | Mask2;
        }
    }
    return Result;
}
 
int main()
{
    BITMAPFILEHEADER    headfirst;
    BITMAPINFOHEADER    headsecond;
    unsigned char p,t;
    int size;
    
    FILE  *fin,*ft,*fk, *fou;
    fin = fopen("Z:\img.bmp", "rb+");
    ft = fopen("Z:\input.txt", "rb+");
    fseek(ft, 0, SEEK_END);
    size = (ftell(ft)); 
    fseek(ft, 0, SEEK_SET);
    fk = fopen("Z:\key.txt", "wb+");
    fou = fopen("Z:\sh1fr.bmp", "wb+");
 
    fread(&headfirst, sizeof(BITMAPFILEHEADER), 1, fin);
    fread(&headsecond, sizeof(BITMAPINFOHEADER), 1, fin);
    fwrite(&headfirst, sizeof(BITMAPFILEHEADER), 1, fou);
    fwrite(&headsecond, sizeof(BITMAPINFOHEADER), 1, fou);
    fread(&t, 1, 1, ft);
    int *txt= new int [8];
    txt = ByteToBinary(t);
    int z = 0, max, step;
    max = ((headsecond.biHeight*headsecond.biWidth)/8);
    if (size > max)
    {
        cout << "Error" << endl;
        goto e1;
    }
    step = max / size;
    int cou = 0, cur = 0;
    for (int i = 0; i < headsecond.biHeight * 3; i += 1)
    {   
        
            for (int j = 0; j < headsecond.biWidth * 3; j += 1)
            {   
                if (cou == cur)
                {
                    fread(&p, 1, 1, fin);
                    if (z == 8)
                    {
                        fread(&t, 1, 1, ft);
                        txt = ByteToBinary(t);
                        z = 0;
                    }
                    p = WriteBitToByte(txt[z], p);
                    fwrite(&p, 1, 1, fou);
                    cout << ".";
                    cur += step;
                }
                else
                {
                    fread(&p, 1, 1, fin);
                    //fwrite(&p, 1, 1, fou);
                    fprintf(fou, "%c", p);
                }
                cou++;
        }
    }
    fprintf(fk, "%d ", step);
    fprintf(fk, "%d", size);
e1:
 
    fclose(fin);
    fclose(fou);
 
    system("pause");
    return 0;
}
Считывание

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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include "stdafx.h" 
#include <iostream> 
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
 
#pragma pack(push,1)
typedef struct tagBITMAPFILEHEADER {
    unsigned short  bfType;
    unsigned long   bfSize;
    unsigned short  bfReserved1;
    unsigned short  bfReserved2;
    unsigned long   bfOffBits;
} BITMAPFILEHEADER;
#pragma pack(pop)
 
#pragma pack(push,2)
typedef struct tagBITMAPINFOHEADER {
    unsigned int    biSize;
    long        biWidth;
    long        biHeight;
    unsigned short  biPlanes;
    unsigned short  biBitCount;
    unsigned int    biCompression;
    unsigned int    biSizeImage;
    long        biXPelsPerMeter;
    long        biYPelsPerMeter;
    unsigned int    biClrUsed;
    unsigned int    biClrImportant;
} BITMAPINFOHEADER;
#pragma pack(pop)
 
int GetBitValue(unsigned char B, int N)
/* Получает значение N-ого бита в байте B
Возвращает 1 или 0 (в зависимости от значения Бита)
*/
{
    int k = 256;
 
    for (int i = 0; i < N; i++) k /= 2;
 
    if ((B & k) != 0) return 1;
    else return 0;
}
 
unsigned char WriteBitToByte(int Bit, unsigned char B)
/* Записывает в байт B на последнюю позицию бит Bit
*/
{
    unsigned char A = 00000001;
    unsigned char Result = B;
 
    if (Bit == GetBitValue(B, 8)) return B;
    else if (Bit == 1) return Result = Result | A;
    else if (Bit == 0) return B - A;
 
    return NULL;
}
int *ByteToBinary(unsigned char val)
/* Разбивает исходный Байт на биты. Возвращает массив из восьми элементов
Каждый Nй элемент соответствует Nму биту.
Принимает значения 1 или 0
*/
{
    int *mass = new int[8];
    int t, i;
    for (t = 128, i = 0; t > 0; t /= 2, i++)
    {
        if ((val & t) != 0) mass[i] = 1;
        else if ((val & t) == 0) mass[i] = 0;
    }
    return mass;
}
unsigned char BinaryToByte(int *mass)
/* Собирает из массива битов один целый байт и возвращает его.
Входной параметр: массив из восьми элементов, соответсвтующих
битам Байта
*/
{
    unsigned char Mask = 00000001;
    unsigned char Result = 00000000;
    unsigned char Mask2;
 
    int j = 0;
    for (int i = 7; i > -1; i--, j++)
    {
        if (mass[i] == 1) {
            Mask2 = (Mask << (j));
            Result = Result | Mask2;
        }
    }
    return Result;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    BITMAPFILEHEADER    headfirst;
    BITMAPINFOHEADER    headsecond;
    unsigned char p;
    FILE *fin, *fk, *fou;
    fin = fopen("Z:\sh1fr.bmp", "rb+");
    fk = fopen("Z:\key.txt", "rb+");
    fou = fopen("Z:deshifr.txt","w");
    fread(&headfirst, sizeof(BITMAPFILEHEADER), 1, fin);
    fread(&headsecond, sizeof(BITMAPINFOHEADER), 1, fin);
    int step, size;
    fscanf(fk, "%d", &step);
    fscanf(fk, "%d", &size);
    fclose(fk);
    cout<<step<<" "<<size;
    int cou=0;
    int *res = new int[8];
    char *r = new char[size + 1];
    for (int i = 0; i <size; i ++)
    {
            fseek(fin, step, SEEK_CUR);
            fread(&p, 1, 1, fin);
            if (cou == 8)
            {
 
                p = BinaryToByte(res);
                cout << "." ;
                fprintf(fou, "%c", p);
                cou = 0;
                res[cou] = GetBitValue(p, 8);
            }
            else
            {
                res[cou] = GetBitValue(p, 8);
            }
            cou++;
    }
        fclose(fin);
    fclose(fou);
 
    system("pause");
    return 0;
}


Вернуться к обсуждению:
Текст в BMP и обратно C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2018, 09:56
Готовые ответы и решения:

Преобразовать текст из *.txt (в любой кодировке) в картинку формата *.bmp
Привет) Нужна помощь с написанием программы..нужна информация) Задание: Написать программу,...

Конвертировать tiff в bmp и обратно
Есть ли какие-нибудь простенькие библиотеки для конвертирования tiff в TBitmap и обратно? Или можно...

Преобразовать bmp в текст
Здравствуйте. Собсвенно, вот проблема. Имеется капча - ЛК] , нужно преобраовать картинку в текст...

ТЕКСТ: С Edit'a в масив и обратно в EDIT
вот у меня задание (сам себе захотел научиться) но так и не научился ( зхотел ТЕКСТ перевести в...

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

Конвертация из jpg в bmp и обратно
И так, ребят, мне срочно нужна помощь! нужно при помощи MS Visual C++ переконвертировать jpg в bmp...

Записать текст, который находится в текстовом поле, в переменную, и обратно
вот у меня есть текстовое поле street1 = CreateWindow(&quot;EDIT&quot;, &quot;&quot;, WS_VISIBLE| WS_CHILD | ...

BMP в массив и обратно (на чистом С++)
Надо загнать изображение BMP, допустим, 100x200 пикселей, в двухмерный массив 100x200 (то-есть 20...

Текст в кодировке cp1251 перевести в utf8 и обратно?
Здорова! Вот есть код: #include &lt;iostream&gt; using std::cout; using std::endl; using std::cerr;...

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