.1.2.
1.2 ()
1
1.2 ()
1
. .
//----------------------------------------------------------------------------
#include <iostream.h> // /
#include <conio.h> // getch
#include <windows.h> // CharToOem
#define SIZE_BUF 1024 // /
//-----------------------------------------------------------------------------
//
char strdos[256];
char* dos(char* strw){
CharToOem(strw,strdos);
return strdos;
}
//------------------------------------------------------------------------------
// x buf n
// , ,
// 1
int Search(char* buf,int n,char x){
int i;
for(i=0;buf[i]!=x && i<n;i++);
return (i!=n? i: -1);
}
//------------------------------------------------------------------------------
//
// argc=4
// argv[1] (e , d )
// argv[2]
// argv[3]
int main(int argc, char* argv[])
{
char abc[]="";//
char Buf[SIZE_BUF]; // /
int key; //
cout<<dos(" \n");
if(argc==4 && (*argv[1]=='e' || *argv[1]=='d')){
FILE* In=fopen(argv[2],"rb");
if(In==NULL){
cout<<dos(" ...\n");
getch(); return 1;
}
FILE* Out=fopen(argv[3],"wb");
if(Out==NULL){
fclose(In);
cout<<dos(" ...\n");
getch(); return 1;
}
clearerr(In); clearerr(Out);
cout<<dos(" ( 0 31: ");
cin>>key;
if(key < 0 || key > 31){
cout<<dos(" ...\n");
fclose(In); fclose(Out);
getch(); return 1;
}
while(!feof(In)){ //
|
|
int LenBuf=fread(Buf,1,SIZE_BUF,In); //
if(ferror(In)){
fclose(In); fclose(Out);
cout<<dos(" ...\n");
getch(); return 1;
}
for(int i=0;i<LenBuf;i++){ //
int code=Search(abc,32,Buf[i]);
if(code!=-1){ //
if(*argv[1]=='e')
code=(code+key)%32; //
else code=(code-key+32)%32; //
Buf[i]=abc[code]; // /
}
}
fwrite(Buf,1,LenBuf,Out); //
if(ferror(Out)){
fclose(In); fclose(Out);
cout<<dos(" ...\n");
getch(); return 1;
}
}
fclose(In); fclose(Out);
cout<<dos(" ")<<argv[2];
cout<<dos(*argv[1]=='e'? " ":" ")<<endl;
cout<<dos(" ")<<argv[3]<<endl;
}
else{
cout<<dos(" : ");
cout<<"Cesar e/d infile outfile\n";
cout<<dos("e - , d - ,\n");
cout<<dos("infile - ,\n");
cout<<dos("outfile - .\n");
}
getch();
return 0;
}
//-----------------------------------------------------------------------------------
/ , . :
char abc[]="";
, . : ( 32). : . , .
( file1.txt). : cesar e file1.txt file2.txt. . 1.6 .
. 1.6. . |
. 1.7.
. 1.7. . |
: cesar d file2.txt file3.txt. . 1.8 .
. 1.8. . |
. 1.9.
. 1.9. . |
. . , , .
1. ?
2. . /.
|
|
3. . /.
4. . /.
5. . /.
6. ?
7. ?
8. . /.
9. . /.
10. . /.
11. . /.
12. . /.
:
;
;
.
"" , , , , , , .
"" , , , , , .
"" , , , , , , .
"" , , , , , .