|
0 / 0 / 0
Регистрация: 21.01.2020
Сообщений: 4
|
||||||
Кодирование и Декодирование21.01.2020, 21:16. Показов 10557. Ответов 6
Метки c++, декодирование, код, кодировка, консоль, ООП, программирование, си++, файл, чайник (Все метки)
Суть следующая. Мне нужна программа которая читает из текстового файла, затем кодирует полученную информацию с ключем, который вводит пользователь, записывает в новый текстовый файл. После нужно из зашифрованого файла снова прочитать сообщение, попросить ввести ключ и раскодировать. Кодировка по таблицы АСКИ. Я пробовал пробовал, но у меня не работает первая часть программы с кодированием. Помогите пожалуйста)
0
|
||||||
| 21.01.2020, 21:16 | |
|
Ответы с готовыми решениями:
6
Кодирование и декодирование
Кодирование и декодирование QR кода |
|
7 / 5 / 2
Регистрация: 21.01.2020
Сообщений: 29
|
|
| 21.01.2020, 21:34 | |
|
может у вас ошибка в том что string[i] - это char.... то есть диапозон -128 до 128
обычно лучше использовать unsigned char - 0...255 напишите подробно что не работает...ошибка в коде ? или неправильно считает ?
0
|
|
|
0 / 0 / 0
Регистрация: 21.01.2020
Сообщений: 4
|
|
| 21.01.2020, 21:52 [ТС] | |
|
came_L, не работает если файлы находятся на любых дисках кроме диска С, не работает правильно шифрование, какие-то не понятные значения выдаёт, не похожие на кодировку из таблицы, не записывает результат в новый файл.
0
|
|
|
7 / 5 / 2
Регистрация: 21.01.2020
Сообщений: 29
|
||||||
| 21.01.2020, 23:03 | ||||||
|
у меня в main() указаны адреса ...переименуй под себя...проверил шифровывает и расшифровывает вроде
#include <iostream> #include <fstream> #include <string> #include <stdio.h> #include <conio.h> void encoding(const char *address_text, const char *address_cipher, int key) { std::fstream in; std::fstream out; std::string text; in.open(address_text, std::ios_base::in); if(!in.is_open()) std::cout << "file not found"; else { out.open(address_cipher, std::ios_base::out); while (getline(in, text)) // чтение из файла { for(size_t i = 0; i<text.length(); i++ ) text[i] = text[i] + key; out << text << std::endl; } } in.close(); out.close(); } void decoding(const char *address_cipher, const char *address_text, int key) { std::fstream in; std::fstream out; std::string text; in.open(address_cipher, std::ios_base::in); if(!in.is_open()) std::cout << "file not found"; else { out.open(address_text, std::ios_base::out); while (getline(in, text)) // чтение из файла { for(size_t i = 0; i<text.length(); i++ ) text[i] = text[i] - key; out << text << std::endl; } } in.close(); out.close(); } int main() { int key; std::cin >> key; encoding("D:/text1.txt", "D:/cipher.txt", key); decoding("D:/cipher.txt", "D:/text2.txt", key); return 0; } Добавлено через 28 минут у меня в main() указаны адреса ...переименуй под себя...проверил шифровывает и расшифровывает вроде
0
|
||||||
|
0 / 0 / 0
Регистрация: 21.01.2020
Сообщений: 4
|
|
| 22.01.2020, 09:44 [ТС] | |
|
Спасибо, теперь работает, но вот шифр все равно странный, он вместо чисел пишет набор букв, но расшифровка работает)
0
|
|
|
7 / 5 / 2
Регистрация: 21.01.2020
Сообщений: 29
|
|
| 22.01.2020, 10:14 | |
|
то есть вы решили что после набора чисел должно зашифроваться числом?
числа находятся от 48 до 57 позиции в ascii таблицы + key(число) = переход на другой символ в таблице "1" + 11 = позиция 1 в таблице + 11 = 49 + 11 = 60 = "<" Добавлено через 6 минут (текст в ascii , число тоже текст) + n(key) = сдвиг текста в ascii на n позиции
0
|
|
|
0 / 0 / 0
Регистрация: 21.01.2020
Сообщений: 4
|
|
| 22.01.2020, 10:33 [ТС] | |
|
Все теперь я понял, спасибо огромное)
0
|
|
| 22.01.2020, 10:33 | |
|
Помогаю со студенческими работами здесь
7
Кодирование/Декодирование текста Кодирование-декодирование изображений Декодирование и Кодирование Кода Хаффмана Кодирование и декодирование двоичного файла Кодирование и декодирование методом Голея Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|