2 / 2 / 0
Регистрация: 05.02.2016
Сообщений: 66
|
||||||
1 | ||||||
Преобразование string в unsigned char15.09.2021, 13:14. Показов 4812. Ответов 13
Моя программа из текстового документа заносит данные в переменную line. Дальше моя задача эти данные расшифровать, но проблема в том, что переменная line имеет тип string, а мне для дешифрования нужен unsigned char.
В текстовом документе находится зашифрованная строка "h d 9 0 3 4f 4d 14 59 49 d 44 5a 1f 17 1d 4f 5a 1f 17 1d 4f 5a 1f 17 1d 4f 4f 1 b 45 41 f a 44 4d 14 59 4e 1b 18 f 7 17 52 49 1a 53 46 f 1f 13 45 48 1d 1b a 16 17 1".
0
|
15.09.2021, 13:14 | |
Ответы с готовыми решениями:
13
Преобразование unsigned short в unsigned char Сделать преобразование unsigned char в char, а затем типу int Unsigned char to string Конвертация string to unsigned char Преобразовать const unsigned char* в std::string (или _bstr_t ) |
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,719
|
||||||
15.09.2021, 15:53 | 2 | |||||
Сообщение было отмечено Tillka как решение
Решение
0
|
2 / 2 / 0
Регистрация: 05.02.2016
Сообщений: 66
|
|
16.09.2021, 06:15 [ТС] | 3 |
zss, подскажи пожалуйста, куда именно вставить в мой код и какие переменные поменять, чтобы работало шифрование? А то у меня ошибки выходят.
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,719
|
||||||
16.09.2021, 08:05 | 4 | |||||
А разве это не очевидно.
У Вас
0
|
2 / 2 / 0
Регистрация: 05.02.2016
Сообщений: 66
|
||||||
16.09.2021, 08:12 [ТС] | 5 | |||||
zss, когда запускаю проект, дохожу до этого участка кода, выходит следующая ошибка (во вложении), ниже мой конечный код.
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,719
|
||||||
16.09.2021, 08:27 | 6 | |||||
Сообщение было отмечено Tillka как решение
Решение
Разве не очевидно, что читаемые строки длиннее 100 символов.
Напишите
Весь код для шифрования нужно вставить между 35 и 36 строками.
0
|
2 / 2 / 0
Регистрация: 05.02.2016
Сообщений: 66
|
||||||
16.09.2021, 11:27 [ТС] | 7 | |||||
zss, извиняюсь за наглость, но всё равно не работает. Ругается на 44 строку, на переменные TextLine.
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,719
|
||||||
16.09.2021, 11:51 | 8 | |||||
1.TextLine - это АДРЕС массива символов, который Вы собираетесь обработать.
Массив заканчивается числом ноль. Зачем Вы повторно объявили TextLine в 38 строке
0
|
2 / 2 / 0
Регистрация: 05.02.2016
Сообщений: 66
|
||||||
22.09.2021, 13:38 [ТС] | 9 | |||||
zss, извините за долгое отсутствие. Не могу понять в чём проблема, результат выполнения программы во вложении. Что не так?
Код:
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,719
|
|||||||||||
22.09.2021, 15:40 | 10 | ||||||||||
Зачем такое извращение?
Можете посмотреть получившиеся коды
0
|
2 / 2 / 0
Регистрация: 05.02.2016
Сообщений: 66
|
||||||
23.09.2021, 08:41 [ТС] | 11 | |||||
zss, добрый день. Я благодарен вам за помощь, но что-то никак не хочет работать. Ошибка во вложении. Не могу понять как мне увидеть декодированный текст.
Мой код:
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,719
|
|
23.09.2021, 08:55 | 12 |
Поскольку Вы не поставили фигурные скобки, то 3-я строка не принадлежит циклу for(int i....
Соответственно, переменная i локализованная в цикле для нее не видна. p.s. А с какой целью Вы оставили вторую строку? Символьное представление закодированного текста совершенно бессмысленно.
0
|
2 / 2 / 0
Регистрация: 05.02.2016
Сообщений: 66
|
|
23.09.2021, 09:08 [ТС] | 13 |
zss, "p.s. А с какой целью Вы оставили вторую строку?" - хотел посмотреть. Сейчас декодируется, но в числа, а я хотел в текст, чтобы в дальнейшем с ним работать. Код шифрования брал с другого сайта. Пример во вложении.
PS. Т.е. я хотел брать текст из файла, его расшифровывать и потом с ним работать.
0
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,719
|
||||||
23.09.2021, 09:19 | 14 | |||||
Чтобы получать только буквы, нужно ограничить интервал результатов.
А, поскольку кодирование делается через исключающее или, то я не представляю, как это можно сделать. И, кстати, в приведенном примере выводятся не символы, а шестнадцатеричные значения. Ну так и Вы выводите тоже значения используя модификатор hex
0
|
23.09.2021, 09:19 | |
23.09.2021, 09:19 | |
Помогаю со студенческими работами здесь
14
Преобразование String в Char или Char неограниченной длинны Преобразовать строку String в массив #define byte_t unsigned char и обратно Приведение типов unsigned char[2] to unsigned char [64] Преобразование string в char* Преобразование char* в string Преобразование string в char* Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |