Форум программистов, компьютерный форум CyberForum.ru

функции для шифрации и дешифрации некоторого текста - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.96
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
24.05.2010, 10:09     функции для шифрации и дешифрации некоторого текста #1
добрый вечер....
нужна помощь....срочно


Фраза шифруется следующим образом: посе первых двух символов вставляется слог БУ,после следующих двух вставляется КА, это повторяется до тех пор, пока в фразе есть хотя бы две буквы. Например, фраза
Я ОТ БАБУШКИ УШЕЛ
Шифруется так:
Я БУОТКА ББУАБКАУШБУКИКА УБУШЕКАЛ

Напишите функции для шифрации и дешифрации некоторого текста. Функции main в качестве аргументов командной строки передавайте kod для кодирования или dekod для декодирования текста. Программу запускайте с переназначением стандартного ввода на файл.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2010, 10:09     функции для шифрации и дешифрации некоторого текста
Посмотрите здесь:

Обработка текста, с использованием функции работы со строками. C++
C++ Класс для текста
C++ Создать шаблон некоторого класса, возможно, реализованного с применением некоторого серверного класса
Вычислите, используя рекурсию, выражение y=x+2*x^2+3*x^4+ ... для некоторого n (n – количество рекурсивных вызовов) C++
Дано разложение функции в ряд Тейлора. Вычислить для значения x и точности Eps точное значение функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
24.05.2010, 21:12     функции для шифрации и дешифрации некоторого текста #2
Вроде всё верно...
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
#include <stdio.h>
 
char *input_file;
char *output_file;
 
char *cod(char *str)
{
    char *buff;
    int i, j;
    
    buff = (char *)malloc(512 * sizeof(char));
    
    i = 0;
    j = 0;
    
    do
    {
        buff[i++] = str[j++];
        buff[i++] = str[j++];
        
        if ((str[j] != '\0') || (str[j + 1] != '\0'))
        {
            buff[i++] = 'ГЃ';
            buff[i++] = 'Г“';
        }
        
        buff[i++] = str[j++];
        buff[i++] = str[j++];
        
        if ((str[j] != '\0') || (str[j + 1] != '\0'))
        {
            buff[i++] = 'ГЉ';
            buff[i++] = 'ГЂ';
        }
    }
    while (str[j] != '\0');
    
    return buff;
}
 
char *decod(char *str)
{
    char *buff;
    int i, j;
    
    buff = (char *)malloc(512 * sizeof(char));
    
    i = 0;
    j = 0;
    
    do
    {
        buff[i++] = str[j++];
        buff[i++] = str[j++];
        
        j += 2;
        
        buff[i++] = str[j++];
        buff[i++] = str[j++];
        
        j += 2;
    }
    while (str[j] != '\0');
    
    return buff;
}
 
 
int main(int argc, char *argv[])
{
    FILE *in;
    
    if ((in = fopen("in.txt", "r")) == NULL)
        return -1;
    
    char instr[256];
    char *outstr;
    
    if (argc != 4)
    {
        printf("Ispol'zuite sintacsis coder.exe [input_file] [output_file] [command]\ngde input_file - imya vhodnogo faila\noutput_file - imya vihodnogo faila\ncommand - comanda kod/dekod");
        return 0;
    }
    
    input_file = argv[1];
    output_file = argv[2];
    
    if (!strcmp("kod", argv[3]) || !strcmp("dekod", argv[3]))
    {
        FILE *in;
        
        if ((in = fopen(input_file, "r")) == NULL)
            return -1;
        
        fgets(instr, 256, in);
        
        if (!strcmp("kod", argv[3]))
            outstr = cod(instr);
        else
            if (!strcmp("dekod", argv[3]))
                outstr = decod(instr);
            else
            {
                printf("V kachestve command ispolzuyte slovo \"kod\" ili \"dekod\"");
                return 0;
            }
        
        FILE *out;
        
        if ((out = fopen(output_file, "w")) == NULL)
            return -1;
        
        fputs(outstr, out);
        
        fclose(in);
        fclose(out);
    }
    else
    {
        printf("V kachestve command ispolzuyte slovo \"kod\" ili \"dekod\"");
        return 0;
    }
    
    return 0;
}
Добавлено через 1 минуту
Запуск - через командную строку
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
25.05.2010, 20:21  [ТС]     функции для шифрации и дешифрации некоторого текста #3
Ругается на fopen и выдаёт в консоле плиз эникей и только
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.05.2010, 20:35     функции для шифрации и дешифрации некоторого текста #4
как конкретно ругается?
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
25.05.2010, 20:45  [ТС]     функции для шифрации и дешифрации некоторого текста #5
>c:\users\jelovers\d​ocuments\visual studio 2008\projects\лабора​торная 5\лабораторная 5\лабораторная 5.cpp(77) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNI​NGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio​.h(237): см. объявление 'fopen'
1>c:\users\jelovers\​documents\visual studio 2008\projects\лабора​торная 5\лабораторная 5\лабораторная 5.cpp(96) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNI​NGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio​.h(237): см. объявление 'fopen'
1>c:\users\jelovers\​documents\visual studio 2008\projects\лабора​торная 5\лабораторная 5\лабораторная 5.cpp(114) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNI​NGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio​.h(237): см. объявление 'fopen'
1>Компоновка...
1>Внедрение манифеста...

а в консоле пишет плиз эни кей
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.05.2010, 20:47     функции для шифрации и дешифрации некоторого текста #6
Ну вам же написали, попробуйте вместо fopen использовать fopen_s
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
25.05.2010, 21:04  [ТС]     функции для шифрации и дешифрации некоторого текста #7
\лабораторная 5.cpp(77) : error C2660: fopen_s: функция не принимает 2 аргументов
\лабораторная 5.cpp(96) : error C2660: fopen_s: функция не принимает 2 аргументов
\лабораторная 5.cpp(114) : error C2660: fopen_s: функция не принимает 2 аргументов
поменял все
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.05.2010, 21:16     функции для шифрации и дешифрации некоторого текста #8
Попробуй так:
вместо

C
1
2
if ((in = fopen(input_file, "r")) == NULL)
            return -1;
используй

C
1
fopen_s(&in, input_file, "r");
вместо

C
1
2
if ((out = fopen(output_file, "w")) == NULL)
            return -1;
C
1
fopen_s(&out, output_file, "w");
И убери это

C
1
2
3
4
FILE *in;
    
    if ((in = fopen("in.txt", "r")) == NULL)
        return -1;
а то я тестил с помощью этого, забыл убрать
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
25.05.2010, 21:26  [ТС]     функции для шифрации и дешифрации некоторого текста #9
У меня выводит все слова в ' ' и потом эни кей
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.05.2010, 21:30     функции для шифрации и дешифрации некоторого текста #10
Не понял...

Добавлено через 3 минуты
Скажи, как ты запускаешь программу?
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
25.05.2010, 21:30  [ТС]     функции для шифрации и дешифрации некоторого текста #11
контрл ф5
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.05.2010, 21:40     функции для шифрации и дешифрации некоторого текста #12
Отлично...
Запускай так:
открываешь консоль (WinKey + R, вводишь cmd)
там пишешь cd /D полный_путь_к_файлу
затем имя_файла имя_входного_текстовика имя_выходного_текстовика команда

Пример:
Предположим, файл лежит у меня в папке E:\Users\silent\Desktop\Си\cod_decod
Сам файл называется cod_decod.exe
Входной файл - in.txt
Выходной файл - out.txt
Я хочу закодировать входной файл (команда kod)
Тогда я должен написать в командной строке
cd \D E:\Users\silent\Desktop\Си\cod_decod
Нажать Enter, а потом ввести
cod_decod in.txt out.txt kod
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
25.05.2010, 21:47  [ТС]     функции для шифрации и дешифрации некоторого текста #13
Тоесть скинутый мне листинг не надо менять ?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.05.2010, 21:49     функции для шифрации и дешифрации некоторого текста #14
Ну, кроме того, что я сказал на счёт fopen_s

Добавлено через 50 секунд
Хотя, возможно, и без этого будет работать. Но приучи себя так отлаживать программы, чтобы компилятор не выдавал даже предупреждений.
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
25.05.2010, 21:54  [ТС]     функции для шифрации и дешифрации некоторого текста #15
Ничего не получается, надо пойти руки об батарею выпрямить
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.05.2010, 21:56     функции для шифрации и дешифрации некоторого текста #16

Послушайте, мы ведь не в чате. Пишите конкретно, что не получается.
Напишите полный путь к вашему файлу сюда, а так же название самого файла и имена входного и выходного файлов (с расширениями)
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
25.05.2010, 22:01  [ТС]     функции для шифрации и дешифрации некоторого текста #17
У меня называется "Лабораторная 5" мне указывать так C:\Users\JeLovers\Documents\Visual Studio 2008\Projects\Лабораторная 5\Лабораторная 5\Лабораторная 5_cpp?

Добавлено через 2 минуты
пишит is not recognized as an internal or external command operable program or batch file
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
25.05.2010, 22:03     функции для шифрации и дешифрации некоторого текста #18
В VS точно не помню, но чтобы подобные программы запускать из среды в меню Debug/Отладка найди пункт Параметры..., Запустить с папаметрами, Аргументы или что-то подобное и введи через пробел нужные значения.
Nikolai89
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 46
25.05.2010, 22:06  [ТС]     функции для шифрации и дешифрации некоторого текста #19
Я сделал так что бы смд было от Лабы 5
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2010, 22:09     функции для шифрации и дешифрации некоторого текста
Еще ссылки по теме:

Для каждого из некоторого количества натуральных чисел указать, является ли оно числом Фибоначчи C++
C++ Для каждого из некоторого количества значений натурального N
Составить программу для кодирования некоторого текста до 50 символов, заменяя каждую букву на пятую после нее букву из а C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
25.05.2010, 22:09     функции для шифрации и дешифрации некоторого текста #20
Пишите так:
cd "C:\Users\JeLovers\Documents\Visual Studio 2008\Projects\Лабораторная 5\Лабораторная 5"
жми Enter
потом имя_исполняемого_файла (экзэшника!) имя_входного_файла (там должно быть записано не зашифрованное сообщение) имя_выходного_файла (туда запишется зашифрованное сообщение) kod
жми Enter
Yandex
Объявления
25.05.2010, 22:09     функции для шифрации и дешифрации некоторого текста
Ответ Создать тему
Опции темы

Текущее время: 08:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru