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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
Salamnov
4 / 4 / 0
Регистрация: 29.03.2009
Сообщений: 37
#1

Шифратор текста, работа с файлами. - C++

01.06.2009, 20:15. Просмотров 2399. Ответов 1
Метки нет (Все метки)

Шифратор Цезаря. Разработать программу, которая кодирует вводимый с клавиатуры или из файла исходный текст f1 и сохраняет его в выходном файле f2. В шифре Цезаря каждая i-я буква алфавита в исходном тексте заменяется на i-k-ю, где k – смещение. Коды букв алфавита идут кругу, после буквы “я” идет буква “а”, таким образом, букву “б”, при k=2, будем кодировать буквой “я”. Шифрованный файл легко декодируется при известном k.

У кого нить было что нить подобное, есть какие нить соображения. Плиз киньте подобный исходник. ну или литературу.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2009, 20:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шифратор текста, работа с файлами. (C++):

Работа с файлами. Измените регистр алфавитных символов текста - C++
В файле test.in записан текст на английском языке. Измените регистр алфавитных символов. (Пример: "Hello, World!" Станет "hELLO, wORLD!")....

Шифратор и дешифратор текста не работает - C++
Здравствуйте уважаемые форумчане, подскажите мне, не изучал С++ совсем, однако попросили написать программу. На этом форуме вроде нашёл...

Работа с файлами - C++
#include <iostream> #include <fstream> #include <stdio.h> #include <string.h> using namespace std; struct man //...

C++ работа с файлами - C++
Задача с чтением и записью данных из файла в файл. Созданы 2 файла, в первом есть данные, во втором пусто. Написать программу, которая...

Работа с файлами - C++
Даны сведения о результатах сессии: ФИО студента, названия четырех предметов и оценки, полученные по каждому предмету. Вывести фамилии...

Работа с файлами - C++
помогите пжл написать программу для удаления энтеров из файла txt

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Delphin_KKC
UNIX-way
710 / 495 / 17
Регистрация: 15.01.2009
Сообщений: 1,721
01.06.2009, 20:29 #2
Правда, на Паскале. Нет времени переводить на Си. Программа шифрует и расшифровывает файлы.
Pascal
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
program cezar;
const
 CSize=1024;
 CExt = '.x';
var
 f,h:file;
 i,r,wr:longint;
 buf:array[1..CSize]of byte;
 s,d:string;
 x:byte;
 enc:boolean;
 
 function ChangeFileExt(oldname,newext:string):string;
 var
  i,n:integer;
  s:string;
 begin
 s:='';
 for i:=1 to length(newext) do
  if not (newext[i] in ['\','/',':','*','?','"','<','>','|']) then s:=s+newext[i];
 newext:=s;
 if newext[1]<>'.' then newext:='.'+newext;
 for i:=length(oldname) downto 1 do
  begin
  if oldname[i]='.' then
   begin
   n:=i-1;
   break;
   end else
    if oldname[i]='\' then
     begin
     n:=-1;
     break;
     end;
  end;
 if n > 0 then
  begin
  oldname:=copy(oldname,1,n);
  ChangeFileExt:=oldname+newext;
  end else
   begin
   if oldname[length(oldname)]='\' then
    begin
    writeln('I/O Error: this is no file!');
    ChangeFileExt:='';
    end else
     begin
     ChangeFileExt:=oldname+newext;
     end;
   end;
 end;
 
begin
writeln;
write('Input number from range 1..255: ');
readln(x);
writeln;
writeln('For encode file - type symbol "1" and press [Enter].');
writeln('For decode file - type symbol "2" and press [Enter].');
writeln('For exit - type other symbol and press [Enter].');
readln(d);
write('Input path to input file: ');
readln(s);
if d[1]='1' then
 begin
 //encode
 d:=ChangeFileExt(s,CExt);
 enc:=true;
 end else
  if d[1]='2' then
   begin
   //decode
   write('Input path to output file: ');
   readln(d);
   enc:=false;
   end else halt;
assign(f,s);
reset(f,1);
assign(h,d);
rewrite(h,1);
while not eof(f) do
 begin
 blockread(f,buf,CSize,r);
 for i:=1 to r do
  begin
  if enc then buf[i]:=buf[i] + x else buf[i]:=buf[i] - x;
  end;
 blockwrite(h,buf,r,wr);
 end;
close(f);
close(h);
writeln;
writeln('Press [Enter] for exit.');
readln;
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2009, 20:29
Привет! Вот еще темы с ответами:

Работа с файлами - C++
Как правильно сохранить и загрузить класс с динамическим двумерным массивом. Есть класс class CObject { protected: int...

Работа с файлами С++ - C++
Все работает , но проблема вот в чем: Считал все из файла file.txt записал в файл newfile.txt , но записал не правильно , где-то ошибка ,...

Работа с файлами - C++
Дано(в текстовом файле) n&gt;1000000 натуральных чисел (каждое число &lt;10000) записанных через пробел. Получить массив в котором все числа...

Работа с файлами - C++
Дан файл расширения .txt, в котором имеется список вида: 1. Фамилия1 2. Фамилия2 Как произвести чтение из файла, для поиска нужной...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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