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

0D 0A FF В конце файла после шифрования - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
06.06.2013, 19:42     0D 0A FF В конце файла после шифрования #1
Всем привет. Пишу прогу для шифрования по алгоритму Цезаря. Знаю-знаю, целая туча таких Написал 2 для шифрования и расшифровывания одной буквы. При обработке строк и выводе их на экран проблем вроде бы нет, но когда дело доходит до файлов ... При зашифровании в конце файлов появляются лишние символи 0D 0A FF. А при расшифровывании символи 1А .
Знаю, что 0D 0A это переход на новую строку.
Выяснил, что 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
39
40
41
42
43
44
45
char find_and_encr_char(char what_find,int key){
      char engl_abet[26]= {'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'};
    bool founded= false; // знайдено ?
 
      char encr_char;
      if(what_find==' ') {
          encr_char=' ';
          founded=true;
          return encr_char;
                             }
    if(what_find=='.') {
          encr_char='.';
          founded=true;
          return encr_char;
                             }
 
      for(int i=0;i<26;i++){
 
                int abskey=i+key; 
                            if(engl_abet[i]==what_find){
                                if((i+key)>26){ abskey=(i+key)%26 ; }
                                encr_char=engl_abet[abskey];
                                founded=true;
                                break;
                                                       }
                            }
 
if(founded==false) encr_char=what_find;
                              return encr_char; }
 
char find_and_decr_char(char what_find, int key)
{
 char engl_abet[26]= {'q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'};
 
  if(what_find == ' ')         return ' ';
    if(what_find == '.')         return '.';
 
   for(int i=0;i<26;i++)
   {
      if (what_find == engl_abet[i]){
         if ((i-key) < 0)         return engl_abet[(26 - (-1*(i - key)%26))%26];
         else            return engl_abet[i-key];
   }
   }
}
P.S. Просьба не отсылать на топики с другими реализациями этого алгоритма, я там был хочу доделать именно так так задумал изначально
Миниатюры
0D 0A FF В конце файла после шифрования   0D 0A FF В конце файла после шифрования  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 19:42     0D 0A FF В конце файла после шифрования
Посмотрите здесь:

Как считать информацию из файла, если в конце стоит пробел? C++
C++ Удалить ненужную информацию в конце файла, не создавая другой файл
C++ вставить после каждого слова в предложении запятую, а в конце предложения стоит точка
Написать программы шифрования и расшифровки файла методом циклического сдвига C++
C++ Алгоритм шифрования из exe файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 22:56     0D 0A FF В конце файла после шифрования
Еще ссылки по теме:

шифрования текста c возможностью выбора любого текстового файла C++
Не понятный дополнительный символ в конце файла C++
C++ Написать AES, шифрования любого файла .exe.

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

Или воспользуйтесь поиском по форуму:
seruy-t
 Аватар для seruy-t
2 / 2 / 0
Регистрация: 21.08.2010
Сообщений: 216
06.06.2013, 22:56  [ТС]     0D 0A FF В конце файла после шифрования #21
alsav22, Извините
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
06.06.2013, 22:56     0D 0A FF В конце файла после шифрования
Ответ Создать тему
Опции темы

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