Форум программистов, компьютерный форум, киберфорум
Наши страницы

Шифрование методом перестановки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C++ Символы в строках http://www.cyberforum.ru/cpp-beginners/thread408717.html
Написал прог которая сортирует одну строку но вот в чем проблема я ни как не представляю и не понимаю как сделать так что бы был массив N количество строк и отсортировать символы в строках по...
C++ Ребяты помогите со строками чуток разобраться. Есть строка. В ней надо найти максимальное количество повторяющихся элементов. int main(){ char s = "pen stolb nos avtobus stil shik kaktus"; char c_max = ""; int max = 0; int col... http://www.cyberforum.ru/cpp-beginners/thread408715.html
C++ Найти наибольший среди отрицательных и наименьший среди положительных элементов массива
Задача такова: В введенном с клавиатуры одномерном массиве найти наибольший среди отрицательных и наименьший среди положительных элементов массива. Кто поможет, огромная благодарность :)
C++ "*&" - что это?
не понимаю для чего нужна "*&" запись. вот пример: int *z; int *&r = z; //объясните пожалуйста что она делает int a = 9; z = &a;
C++ Найти произведение элементов вектора, расположенных между максимальными и минимальными по модулю элементами http://www.cyberforum.ru/cpp-beginners/thread408705.html
Задайте два вектора А(n) и B(m). выполните задания: 1)найдите вектора С(n+m) с элементов векторов А и Б, сначала парных в порядке спадания, а потом непарных в порядке возрастания. 2)найдите...
C++ выходной файл Записать выходной файл, разделить каждое число на полусумму первого отрикательного и 50-го числа файла. Помогите пожалуйста с этой задачей подробнее

Показать сообщение отдельно
omg_showTime
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 3
15.12.2014, 21:45
Код я немного приукрасил для своих целей

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
#include "stdafx.h"
#include "iostream"
#include "fstream"
#include "string"
#include "conio.h"
 
using namespace std;
 
string encode(long lSize, long * lKey, string fPath)
{
    long i, j;
    string text, line, encstr;
    ifstream ifs(fPath.c_str());
    if(!ifs)
        cout << "Ошибка при открытии файла: " << fPath.c_str() << endl;
    else
    {
        while(getline(ifs, line))
            text += line;
        ifs.close();
        cout << "Исходный текст: " << text.c_str() << endl;
        for(i = 0; i < text.length(); i += lSize)
        {
            line = "";
            for(j = 0; j < lSize; j++)
                line += text[i + j];
            for(j = 0; j < lSize; j++)
                encstr += line[lKey[j]];
        }
    }
    return encstr;
}
 
string decode(long lSize, long * lKey, string fPath)
{
    long i, j;
    string text, line, decstr;
    ifstream ifs(fPath.c_str());
    if(!ifs)
        cout << "Ошибка при открытии файла: " << fPath.c_str() << endl;
    else
    {
        while(getline(ifs,line))
            text += line;
        ifs.close();
        cout << "Исходный текст: " << text.c_str() << endl;
        decstr = text;
        for(i = 0; i < text.length(); i += lSize)
        {
            for(j = 0; j < lSize; j++)
                decstr[i + lKey[j]] = text[i + j];
        }
    }
    return decstr;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    char chr;
    long lKey[5] = {0};
    long i, lSize = sizeof(lKey) / sizeof(lKey[0]);
    
    bool bMenu = true;
    string text;
    while(bMenu)
    {
        cout << "***Меню***" << endl;
        cout << "E - Шифровка" << endl;;
        cout << "D - Дешифровка" << endl;
        cout << (chr = _getch()) <<endl;
        switch(toupper(chr))
        {
        case 'E':
            cout << "Введите ключ шифровки: " << endl;
            for(i = 0; i < lSize; i++)
            {
                cout << "Ключ[" << i + 1 << "] = ";
                cin >> lKey[i];
            }
            text = encode(lSize, lKey, "encode.txt");
            cout << "Дешифрованный текст: " << text.c_str() << endl;
            break;
        case 'D':
            cout << "Введите ключ шифровки: " << endl;
            for(i = 0; i < lSize; i++)
            {
                cout << "Ключ[" << i + 1 << "] = ";
                cin >> lKey[i];
            }
            text = decode(lSize, lKey, "decode.txt");
            cout << "Зашифрованный текст: " << text.c_str() << endl;
            break;
        default:
            cout << "Вы нажали неподдерживаемую клавишу!" << endl;
            break;
        }
        cout << "Нажмите Y для повторного вывода меню" << endl;
        cout << "Нажмите любую клавишу для выхода";
        cout << (chr = _getch()) << endl;
        if(toupper(chr) != 'Y')
            bMenu = false;
        system("cls");
    }
    system("pause >> null");
    return 0;
}
В первом файле "showtime" - encode
Во втором "owithsem" - decode

Ошибка:

http://fotohost.by/images/2014/12/15/d5c1e86247bac023.jpg
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.