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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
sanya04
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 22
#1

Зашифровать текст - C++

25.06.2013, 13:12. Просмотров 1130. Ответов 10
Метки нет (Все метки)

. Чтобы зашифровать текст, записанный с помощью русских букв и знаков препинания, его можно переписать, заменив каждую букву непосредственно следующей за ней по алфавиту (буква «Я» заменяется на «А»). Дан текстовый файл f. Зашифровать данный текст и записать в файл g.
алгоритм решения задачи обработки данных, хранящихся в текстовом файле.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2013, 13:12     Зашифровать текст
Посмотрите здесь:

Зашифровать текст - C++
Зашифровать данное слово, используя таблицу ASCII-кодов: Printer И дешифровать, используя таблицу ASCII-кодов: 43 4F 4D 50 55 54 45 52 ...

Зашифровать текст - C++
Здравствуйте ! Помогите,пожалуйста,составить программу,которая бы считывала русский текст из файла "input.txt" и кодировала его,заменяя...

Зашифровать текст С++ - C++
Нужно текст взять из текстового документа File.txt, и вывести в текстовый-зашифрованный файл вот что я сделал #include...

Зашифровать текст - C++
Чтобы зашифровать текст, записанный с помощью русских букв и знаков препинания, его можно переписать, заменив каждую букву непосредственно...

зашифровать текст - C++
На C++ как зашифровать текст,чтобы буквы выводились в любом порядке в слове.

Зашифровать текст по ключу - C++
Разработать функцию программиста, которая шифрует строку, заменяя каждый символ другим символом по следующему правилу: к коду первого по...

Текстовый редактор. Зашифровать текст. - C++
подскажите пожалуйста не пойму что надо сделать??? "файл должен храниться в зашифрованном виде: над каждым симво-лом файла произвести...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iv-a
15 / 15 / 0
Регистрация: 25.06.2013
Сообщений: 63
25.06.2013, 14:56     Зашифровать текст #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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
    setlocale(0, "");
    
    ifstream f("f");
    ofstream g("g");
    string line;
 
    if (!f || !g)
    {
        cout << "Error!" << endl;
        system("pause");
        return 1;
    }
 
    while (!f.eof())
    {
        getline(f, line);
        int size = line.size();
        
        for (int i = 0; i < size; i++)
        {
            if (line[i] == 'я') line[i] = 'а';
            else if (line[i] == 'Я') line[i] = 'А';
            else line[i] = line[i] + 1;
        }
 
        g << line;
    }
 
    f.close();
    g.close();
    return 0;
}
sanya04
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 22
25.06.2013, 15:21  [ТС]     Зашифровать текст #3
выводит консоль после операции и в нем написано ERROR.
iv-a
15 / 15 / 0
Регистрация: 25.06.2013
Сообщений: 63
25.06.2013, 15:25     Зашифровать текст #4
Цитата Сообщение от sanya04 Посмотреть сообщение
выводит консоль после операции и в нем написано ERROR.
создайте файл f, положите его в тот же каталог вместе с программой и что-нибудь напишите в нем
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.06.2013, 15:42     Зашифровать текст #5
все хорошо, только вот маленькие русские буквы в ASCII не стоят подряд

у буквы п код 175, а у р - уже 224
iv-a
15 / 15 / 0
Регистрация: 25.06.2013
Сообщений: 63
25.06.2013, 15:42     Зашифровать текст #6
Цитата Сообщение от Thinker Посмотреть сообщение
все хорошо, только вот русские буквы в ASCII не стоят подряд
только одна буква выходит из этого правила - Ё. все остальные на месте
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.06.2013, 15:44     Зашифровать текст #7
Цитата Сообщение от iv-a Посмотреть сообщение
только одна буква выходит из этого правила - Ё. все остальные на месте
я про маленькие русские буквы, у них разрыв имеется
Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
25.06.2013, 20:30     Зашифровать текст #8
@Thinker, всё там на месте, кроме ё Ё
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
    setlocale(LC_CTYPE, "");
    for (int i = 192; i != 256; ++i)
        std::cout << i << ": "
            << static_cast<unsigned char>(i) << std::endl;
    return 0;
}
Миниатюры
Зашифровать текст  
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.06.2013, 21:33     Зашифровать текст #9
Цитата Сообщение от Olivеr Посмотреть сообщение
@Thinker, всё там на месте, кроме ё Ё
альтернативных кодировок несколько: ISO 8859-5, CP866, 1251, ГОСТ КОИ-8, 10007 и т.д.
Речь шла о СР866. Да, ее почти вытеснили другие кодировки, согласен. увидев алгоритм, как то о ней сразу почему-то подумал.
sanya04
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 22
25.06.2013, 23:15  [ТС]     Зашифровать текст #10
А как написать эту программу с помощью функций??

Добавлено через 1 час 19 минут
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string.h>
#include <stdlib.h>
using namespace std;
 
 
void create_file(char *namef,fstream &f)
{ 
    char st[80],s1[5];
    
    f.open(namef,ios::out);
 
    if (!f.is_open())
    {
        cout<<"ERROR"; 
        exit(1);
    }
 
    if(f.eof())
    {
        f.clear();
        f.seekg(0);
    }
 
    while (cin.get()!='\n') continue;
 
    cout << "Для завершения ввода нажмите * enter" <<endl;
 
    cin.getline(st,80);
 
    while (st[0]!='*')
    {
        f<<st<<endl;
        cin.getline(st,80);
            
    }
 
    f.close();
}
void read_file(char *namef,fstream &f)
{
    char st[80];
 
    f.open(namef,ios::in);
 
    if (!f.is_open())
    {
        cout<<"ERROR"; 
        exit(1);
    }
 
    if(f.eof())
    {
        f.clear();
        f.seekg(0);
    }   
    
    while (!f.eof())
    {
        f.getline(st,80);
        cout<<st<<"("<<strlen(st)<<")"<<endl;
    }
 
    f.close();
}
 
void zamen(char *namef,fstream &f,char *nameg,fstream &g)
{
    
    f.open(namef,ios::in);
    g.open(nameg,ios::binary|ios::out);
    char st[40];
    char *st1;
    st1=new char[40];
    int i=0,k=0,n;
    if (!f.is_open())
    {
        cout<<"ERROR";exit(1);
    }
    if (f.eof())
    {
    f.clear();
    f.seekg(0);
    }
    if(!g.is_open())
    {
    cout<<"ERROR";exit(1);
    }
    if(g.eof())
    {
    g.clear();
    g.seekg(0);
    }
     while (!f.eof())
    {
        f.getline(st,40);
        n=strlen(st);
        delete[] st1;
        st1=new char[n];
        st1[0]='\0';
        k=0;
 
        getline(f, line);
        int size = line.size();
        
        for (int i = 0; i < size; i++)
        {
            if (line[i] == 'я') line[i] = 'а';
            else if (line[i] == 'Я') line[i] = 'А';
            else line[i] = line[i] + 1;
        }
 
        g << line;
    }
      f.close();
    g.close();
}
 
 
 
 
 
void main()\
{
    setlocale(LC_ALL,"RUSSIAN");
    fstream f,g;
    char *namef;
    namef=new char[15];
    char *nameg;
    nameg =new char[15];
    
    cout<<"Enter name of the file ";
    cin>>namef;
    create_file(namef,f);
    read_file(namef,f);
    cout<<"Enter name of the new file ";
    cin>>nameg;
    zamen(namef,f,nameg,g);
    read_file(nameg,g);
}
как исправить функцию zamen c программы которая была предоставлена выше?
Заранее спасибо!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2013, 12:10     Зашифровать текст
Еще ссылки по теме:

Зашифровать текст, используя таблицу ASCII-кодов - C++
Помогите зашифровать данный текст, используя таблицу ASCII-кодов: Компилятор. Добавлено через 7 минут #include &lt;iostream&gt; ...

Зашифровать текст методом простой одинарной перестановки - C++
Кто умеет писать коды по шифрованию текста? Добавлено через 37 секунд Кто умеет писать коды по шифрованию текста?

Зашифровать текст заменив каждый символ другим символом - C++
Дан русский текст, записанный с помощью букв и знаков препинания. Зашифровать данный текст, заменив каждый символ другим символом - его...

Зашифровать текст, записанный русскими буквами и знаками препинания - C++
Чтобы зашифровать текст, записанный с помощью русских букв и знаков препинания, его можно переписать, заменив каждую букву непосредственно...

Как зашифровать текст из файла шифрованием Цезаря с ключевым словом? - C++
в общем дан текст в файле.Нужно зашифровать его, например, с помощью кода Ascii, и записать в другой файл. нет даже предположений, так как...


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

Или воспользуйтесь поиском по форуму:
FraidZZ
Ex-Member
3897 / 1523 / 229
Регистрация: 06.01.2013
Сообщений: 4,050
Завершенные тесты: 1
26.06.2013, 12:10     Зашифровать текст #11
Вообще функцию замены можно сделать так, но я не уверен про кодировки, синтаксис, да и вообще давно не кодил =D
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char * zamen(char *in){
 setlocale(0, "");
 char alphabet[]="абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ";
 int i=0;
 bool r=false;
 while(in[i] != "\0") i++;
 char *s; s = new char[i];
 for (int n = 0; n < i; n++){
  r = false;
  for (int m = 0; m < 65; m++){
   if (in[n] == alphabet[m]){s[n]=alphabet[m+1]; r = true;}
  }
  if(!r) s[n]=in[n];
 }
 return s;
}
Yandex
Объявления
26.06.2013, 12:10     Зашифровать текст
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru