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

Шифр Цезаря при сдвиге более, чем на длину алфавита работает некорректно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ОПРЕДЕЛИТЬ ВОЗРАСТ ЧЕЛОВЕКА (ЧИСЛО ПОЛНЫХ ЛЕТ ) http://www.cyberforum.ru/cpp-beginners/thread1126345.html
Известны год и номер месяца рождения человека, а также год и номер месяца сегодняшнего дня (январь - 1 и т. д.). ОПРЕДЕЛИТЬ ВОЗРАСТ ЧЕЛОВЕКА (ЧИСЛО ПОЛНЫХ ЛЕТ ). В случае совпадения указанных номеров месяцев считать, что прошел полный год.
C++ Union внутри struct Добрый вечер! Мне нужно создать структуру с вариантной частью. Не получается получить доступ к полям структуры, находящихся внутри union. Подскажите как нужно #include <string> #include <cstring> #include <gcroot.h> http://www.cyberforum.ru/cpp-beginners/thread1126322.html
Поиск хорошего урока по C++ C++
Помогите пожалуйста найти сеть обучающих уроков по C++ Буду благодарен
Argc, argv[] C++
int _tmain(int argc, char* argv) { setlocale(LC_ALL, "Russian"); printf("Значение argc равно %d \n\n", argc); printf("В командной строке содержится %d параметров \n\n", argc); int i; for (i = 0; i <= argc; i++) printf(" argv: %s\n", i, argv); printf("Среда содержит следующие строки:\n");
C++ Private и public члены класса http://www.cyberforum.ru/cpp-beginners/thread1126310.html
Привет! Есть такой класс: class CDateTime{ private: qint16 year_; qint8 month_, day_; qint8 hours_, minutes_, seconds_;
C++ Открытие и запись файла bmp. Что здесь не так ? Имеется программа, копирующая содержимое из указанного bmp в файл result. Проблема: файл stars копируется нормально, а вместо скопированного tank получается какая-то ерунда. Почему ? #include <iostream> using namespace std; typedef struct pixel { char red; char green; char blue; подробнее

Показать сообщение отдельно
nopluto
0 / 0 / 0
Регистрация: 03.11.2013
Сообщений: 4
22.03.2014, 01:04     Шифр Цезаря при сдвиге более, чем на длину алфавита работает некорректно
Помогите, пожалуйста! Проблема: при сдвиге более, чем на длину алфавита выдаёт всякие символы, хотя проверку я установила
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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <locale.h>
 
using namespace std;
 
int main()
{
    setlocale(0, "");
 
            int k;
 
            cout << "Введите величину сдвига" << endl;
            cin >> k;
            if (k > 32)
                k = k % 32;
 
            ifstream in("Зашифровать текст.txt");
            ofstream out("Результат шифрования.txt");
 
            for (;;)
            {
                string x;
                getline(in, x);
                string y;
 
                for (int i = 0; i < x.length(); i++)
                {
                    if ((x[i] >= 'а' && x[i] <= 'я') || (x[i] >= 'А' && x[i] <= 'Я'))
                    if ((x[i] + k) > 32)
                        y += x[i] + k - 32;
                    else
                        y += x[i] + k;
                    else
                        y += x[i];
                }
 
                out << y << '\n';
 
                if (in.fail())
                    break;
            }
            out.close();
            in.close();
 
            cout << "Зашифровка выполнена, результат в Результат шифрования.txt" << endl;
        }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru