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

написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) - C++

Восстановить пароль Регистрация
 
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 22:37     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #1
написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы(алфавита)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 22:37     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита)
Посмотрите здесь:

C++ Вывести буквы латинского алфавита
C++ Нужно написать программу, печатающую все буквы латинского алфавита от Z до A
В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в текстовый файл h из текстового файла t только латинские буквы. C++
C++ Строка: .Написать программу, определяющую в заданном тексте для каждой буквы алфавита количество ее употребления.
C++ Файл содержит буквы латинского алфавита. Заменить буквы 'р' на 'w'
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 22:48     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #2
Цитата Сообщение от AAK22 Посмотреть сообщение
написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы(алфавита)
Деталько опишите, что это такое "Код Цезаря" и что конкретно нужно сделать
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 22:53  [ТС]     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #3
Код Цезаря - зашифрованный текст, составить программу, чтобы потом в консоле зашифрованный текст выводил в нормальном виде
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 23:23     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #4
Цитата Сообщение от AAK22 Посмотреть сообщение
Код Цезаря - зашифрованный текст, составить программу, чтобы потом в консоле зашифрованный текст выводил в нормальном виде
Покажите на примере, что должно вводиться с клавиатуры и выводиться на экране.
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 23:27  [ТС]     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #5
Цитата Сообщение от xtorne21st Посмотреть сообщение
Покажите на примере, что должно вводиться с клавиатуры и выводиться на экране.
допустим наш алфавит АБВГДЕ.. и тд. с клавы вводишь "В" потом после нажатия клавишы "Enter" конвертируется в букву "Е" сдвиг на 2 буквы
hofmn
Helter Skelter
 Аватар для hofmn
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133
11.02.2013, 23:32     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #6
Работает только латиница:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string.h>
using namespace std;
 
int main()
{
        char buff[50] = {0};
 
        cout << "Шифровать: ";
        cin >> buff;
 
        for (unsigned int i = 0; i < strlen(buff); i++)
                buff[i] += 3;
                
        cout << "Результат: " << buff << endl;
        
        return 0;
}
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 23:38  [ТС]     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #7
Цитата Сообщение от hofmn Посмотреть сообщение
Работает только латиница:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string.h>
using namespace std;
 
int main()
{
        char buff[50] = {0};
 
        cout << "Шифровать: ";
        cin >> buff;
 
        for (unsigned int i = 0; i < strlen(buff); i++)
                buff[i] += 3;
                
        cout << "Результат: " << buff << endl;
        
        return 0;
}
вот так, только вот желательно чтобы целые тексты расшифровывать, а не 1 букву)
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 23:44     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #8
Работает так-же с кириллицей
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <locale> // optional
 
int main()
{
    std::locale::global(std::locale(""));
 
    std::wstring line;
 
    std::wcout << L"Введите строку: ";
    std::getline<wchar_t>(std::wcin, line);
 
    for (std::wstring::iterator i = line.begin(); i < line.end(); ++i)
        *i = *i + 3;
 
    std::wcout << line;
 
    return 0;
}
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 23:47  [ТС]     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #9
Цитата Сообщение от xtorne21st Посмотреть сообщение
Работает так-же с кириллицей
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <locale> // optional
 
int main()
{
    std::locale::global(std::locale(""));
 
    std::wstring line;
 
    std::wcout << L"Введите строку: ";
    std::getline<wchar_t>(std::wcin, line);
 
    for (std::wstring::iterator i = line.begin(); i < line.end(); ++i)
        *i = *i + 3;
 
    std::wcout << line;
 
    return 0;
}
3 ошибки error C2783: 'class std::basic_istream<_E,_Tr> &__cdecl std::getline(class std::basic_istream<_E,_Tr> &,class std::basic_string<_E,_Tr,_A> &)' : could not deduce template argument for '_Tr'
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 23:52     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #10
А вы чем компилируете?

Добавлено через 2 минуты
Попробуйте заменить 12 строку на:
C++
1
std::getline(std::wcin, line);
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
11.02.2013, 23:57  [ТС]     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #11
Цитата Сообщение от xtorne21st Посмотреть сообщение
А вы чем компилируете?

Добавлено через 2 минуты
Попробуйте заменить 12 строку на:
C++
1
std::getline(std::wcin, line);
заменил, ошибок 0, запускается, но консоль ничего не читает, пишу букву и сразу закрывает
hofmn
Helter Skelter
 Аватар для hofmn
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133
12.02.2013, 00:07     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #12
Цитата Сообщение от AAK22 Посмотреть сообщение
вот так, только вот желательно чтобы целые тексты расшифровывать, а не 1 букву)
Не совсем понял, что вы имели в виду, но вот:

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
#include <iostream>
using namespace std;
 
int main()
{
        string buff, choise;
        
        cout << "[1] - шифровать, [2] - расшифровать" << endl
             << "Ваш выбор: ";
        cin >> choise;
        
        if (choise == "1")
        {
            cin.ignore();
            cout << "Шифровать: ";
            getline (cin, buff);
     
            for (unsigned int i = 0; i < buff.size(); i++)
                    buff[i] += 3;
                    
            cout << "Результат: " << buff << endl;
        }
        
        else if (choise == "2")
        {
            cin.ignore();
            cout << "Расшифровать: ";
            getline (cin, buff);
     
            for (unsigned int i = 0; i < buff.size(); i++)
                    buff[i] -= 3;
                    
            cout << "Результат: " << buff << endl;
        }
        else cout << endl << "Введите 1 или 2!";
        
        return 0;
}
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
12.02.2013, 00:10  [ТС]     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #13
Цитата Сообщение от hofmn Посмотреть сообщение
Не совсем понял, что вы имели в виду, но вот:

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
#include <iostream>
using namespace std;
 
int main()
{
        string buff, choise;
        
        cout << "[1] - шифровать, [2] - расшифровать" << endl
             << "Ваш выбор: ";
        cin >> choise;
        
        if (choise == "1")
        {
            cin.ignore();
            cout << "Шифровать: ";
            getline (cin, buff);
     
            for (unsigned int i = 0; i < buff.size(); i++)
                    buff[i] += 3;
                    
            cout << "Результат: " << buff << endl;
        }
        
        else if (choise == "2")
        {
            cin.ignore();
            cout << "Расшифровать: ";
            getline (cin, buff);
     
            for (unsigned int i = 0; i < buff.size(); i++)
                    buff[i] -= 3;
                    
            cout << "Результат: " << buff << endl;
        }
        else cout << endl << "Введите 1 или 2!";
        
        return 0;
}
как выше написали до этого, также, но там если писать текст через пробел, то он конвертирует только слово до пробела, а в этой программе 6 ошибок
hofmn
Helter Skelter
 Аватар для hofmn
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133
12.02.2013, 00:16     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #14
Цитата Сообщение от AAK22 Посмотреть сообщение
как выше написали до этого, также, но там если писать текст через пробел, то он конвертирует только слово до пробела, а в этой программе 6 ошибок
Здесь работает и с пробелами.
У меня ошибок нет, странно.
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
12.02.2013, 00:17  [ТС]     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #15
Цитата Сообщение от hofmn Посмотреть сообщение
Здесь работает и с пробелами.
У меня ошибок нет, странно.
не знаю, 6 ошибок..ладно и на том спасибо!
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
12.02.2013, 00:18     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #16
Цитата Сообщение от AAK22 Посмотреть сообщение
заменил, ошибок 0, запускается, но консоль ничего не читает, пишу букву и сразу закрывает
Если у вас Windows попробуйте в конце перед return 0; поставить std::cin.get();
AAK22
0 / 0 / 0
Регистрация: 11.02.2013
Сообщений: 19
12.02.2013, 00:23  [ТС]     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #17
Цитата Сообщение от xtorne21st Посмотреть сообщение
Если у вас Windows попробуйте в конце перед return 0; поставить std::cin.get();
тоже самое, консоль пуст
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2013, 00:30     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита)
Еще ссылки по теме:

C++ Для заданной строки построить строку, в которой содержаться только буквы латинского алфавита исходной строки
C++ Предложение содержит буквы латинского и русского алфавитов. Вывести буквы только латинского алфавита
Составить алгоритм, подсчитывающий для заданного текста количество вхождений каждой буквы русского алфавита C++

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

Или воспользуйтесь поиском по форуму:
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
12.02.2013, 00:30     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита) #18
Цитата Сообщение от AAK22 Посмотреть сообщение
тоже самое, консоль пуст
Ок тогда в таком случаи в std::locale::global(std::locale("")); попробуйте между двойными кавычками поствить Rus или Russian или russian, точно не помню как правильно.
Yandex
Объявления
12.02.2013, 00:30     написать на с++ программу для Кода Цезаря, сдвиг на 3 буквы, чтобы в консоле конвертировал на 3 буквы вперед (алфавита)
Ответ Создать тему
Опции темы

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