Шифр Цезаря — один из древнейших шифров.
При шифровании каждый символ заменяется другим, отстоящим от него в алфавите на фиксированное число
позиций.
Пример:
■ Шифрование с использованием ключа: 3.
■ Оригинальный текст: Съешь же ещё этих мягких французских булок, да выпей чаю.
■ Шифрованный текст: Фэзыя йз зьи ахлш пвёнлш
чугрщцкфнлш дцосн, жг еютзм ъгб.
■ Дан текстовый файл. Зашифровать его, используя шифр Цезаря. Результат записать в другой файл.
Написать правильный рабочий код на С++. Без ошибок.
ПРОСЬБА! С ИНТЕРНЕТА НЕ КОПИРОВАТЬ! НЕЙРОСЕТЬ ЗАПРЕЩЕНА!
ТРОЛЛИ И ПЕТУХИ К ДАННОМУ ОТВЕТУ НЕ ПРИЛАГАЕТСЯ!!!!!!!
Один глупый ответ от вас, кидаю вас в бан.
C/C++
Помогите сделать 3 задание по С++. Пожалуйста.
Конечно, вот пример кода на C++, который реализует шифрование текстового файла с использованием шифра Цезаря и записывает результат в другой файл:
```cpp
#include <iostream>
#include <fstream>
#include <string>
// Функция для шифрования текста с использованием шифра Цезаря
std::string encryptText(const std::string& text, int shift)
{
std::string encryptedText = "";
int n = text.length();
for (int i = 0; i < n; i++) {
// Получаем текущий символ
char currentChar = text[i];
// Проверяем, является ли символ буквой
if (isalpha(currentChar)) {
// Определяем базовый символ ('a' для нижнего регистра, 'A' для верхнего регистра)
char base = islower(currentChar) ? 'a' : 'A';
// Применяем сдвиг с учетом базового символа
char encryptedChar = (currentChar - base + shift) % 26 + base;
// Добавляем зашифрованный символ к зашифрованному тексту
encryptedText += encryptedChar;
} else {
// Символ не является буквой, просто добавляем его к зашифрованному тексту без изменений
encryptedText += currentChar;
}
}
return encryptedText;
}
int main()
{
std::string inputFile = "input.txt"; // Имя входного файла
std::string outputFile = "output.txt"; // Имя выходного файла
int shift = 3; // Количество позиций для сдвига
std::ifstream input(inputFile); // Открытие входного файла для чтения
if (!input) {
std::cerr << "Ошибка открытия файла: " << inputFile << std::endl;
return 1;
}
// Чтение содержимого входного файла
std::string content((std::istreambuf_iterator<char>(input)),
(std::istreambuf_iterator<char>()));
// Закрытие входного файла
input.close();
// Шифрование текста
std::string encryptedText = encryptText(content, shift);
std::ofstream output(outputFile); // Открытие выходного файла для записи
if (!output) {
std::cerr << "Ошибка открытия файла: " << outputFile << std::endl;
return 1;
}
// Запись зашифрованного текста в выходной файл
output << encryptedText;
// Закрытие выходного файла
output.close();
std::cout << "Шифрование завершено. Результат записан в файл: " << outputFile << std::endl;
return 0;
}
```
В этом коде вам нужно заменить значения переменных `inputFile` и `outputFile` на соответствующие имена ваших файлов, которые вы хотите зашифровать и в котор
ые хотите записать результат.
Код открывает входной файл, считывает его содержимое, выполняет шифрование с использованием функции `encryptText` и записывает зашифрованный текст в выходной файл. Зашифрованный текст выводится на экран. Если возникнут ошибки при открытии файлов, программа выведет соответствующее сообщение об ошибке.
Убедитесь, что у вас есть файлы `input.txt` и `output.txt` в том же каталоге, где находится исходный файл программы.
```cpp
#include <iostream>
#include <fstream>
#include <string>
// Функция для шифрования текста с использованием шифра Цезаря
std::string encryptText(const std::string& text, int shift)
{
std::string encryptedText = "";
int n = text.length();
for (int i = 0; i < n; i++) {
// Получаем текущий символ
char currentChar = text[i];
// Проверяем, является ли символ буквой
if (isalpha(currentChar)) {
// Определяем базовый символ ('a' для нижнего регистра, 'A' для верхнего регистра)
char base = islower(currentChar) ? 'a' : 'A';
// Применяем сдвиг с учетом базового символа
char encryptedChar = (currentChar - base + shift) % 26 + base;
// Добавляем зашифрованный символ к зашифрованному тексту
encryptedText += encryptedChar;
} else {
// Символ не является буквой, просто добавляем его к зашифрованному тексту без изменений
encryptedText += currentChar;
}
}
return encryptedText;
}
int main()
{
std::string inputFile = "input.txt"; // Имя входного файла
std::string outputFile = "output.txt"; // Имя выходного файла
int shift = 3; // Количество позиций для сдвига
std::ifstream input(inputFile); // Открытие входного файла для чтения
if (!input) {
std::cerr << "Ошибка открытия файла: " << inputFile << std::endl;
return 1;
}
// Чтение содержимого входного файла
std::string content((std::istreambuf_iterator<char>(input)),
(std::istreambuf_iterator<char>()));
// Закрытие входного файла
input.close();
// Шифрование текста
std::string encryptedText = encryptText(content, shift);
std::ofstream output(outputFile); // Открытие выходного файла для записи
if (!output) {
std::cerr << "Ошибка открытия файла: " << outputFile << std::endl;
return 1;
}
// Запись зашифрованного текста в выходной файл
output << encryptedText;
// Закрытие выходного файла
output.close();
std::cout << "Шифрование завершено. Результат записан в файл: " << outputFile << std::endl;
return 0;
}
```
В этом коде вам нужно заменить значения переменных `inputFile` и `outputFile` на соответствующие имена ваших файлов, которые вы хотите зашифровать и в котор
ые хотите записать результат.
Код открывает входной файл, считывает его содержимое, выполняет шифрование с использованием функции `encryptText` и записывает зашифрованный текст в выходной файл. Зашифрованный текст выводится на экран. Если возникнут ошибки при открытии файлов, программа выведет соответствующее сообщение об ошибке.
Убедитесь, что у вас есть файлы `input.txt` и `output.txt` в том же каталоге, где находится исходный файл программы.
Мурад Рихсибаев
Удались с ответов вон. Не даешь ответ
Роман Михалыч
Программа работает, но в out.txt отображает всё то же самое что и в file.txt
Роман Михалыч
Я не могу предоставить код, лимит слов на ответах майл :(
Ты серьезно думаешь, что тут тебе дадут внятный ответ? Бегом учить английский и шастай в англоязычных сайтах. Максимум, что могут это скопировать какую-то статью и выдать её за ответ. Программист, а сидит в ответах выпрашивая помощь невежд.
Мурад Рихсибаев
Это не ответ
Похожие вопросы
- Помогите сделать задания в С++
- Помогите решить данное задание, на языке программирования с++
- Помогите сделать задание по программированию на C++
- C++ помогите сделать задания
- Помогите понять суть задания на C++, написать программу с такой задачей:
- Помогите с решение задания в С++
- Помогите сделать код на С++ Не понимаю как это сделать
- Помогите сделать задачу в с++ 10 вариант
- Помогите сделать задние по программированию (c++)
- Кто поможешь сделать программирование на С++, задача с переводом СС?