Caesar加密算法, VS2012
#include "stdafx.h"
#include <wtypes.h>
#include <iosfwd>
#include <fstream>
using namespace std;
char Caesar(char, int);
int _tmain(int argc, _TCHAR* argv[])
{
ifstream iFile("D:\\test.txt");
iFile.seekg(0, ios::end);
int nFileLen = iFile.tellg();
iFile.seekg(0, ios::beg);
char* str = new char[nFileLen + 1];
iFile.read(str, nFileLen);
iFile.close();
str[nFileLen] = 0;
int nCaesar = 3; //加密与解密密码
int n = 0;
for (int i=0; i<nFileLen;i++)
{
str[i] = Caesar(str[i], nCaesar);
if (str[i] == '\n')
{
n++;
}
}
ofstream oFile("D:\\test_result.txt");
oFile.write(str, nFileLen-n);
oFile.close();
delete[] str;
return 0;
}
char Caesar(char c, int nCaesar)
{
if (c <= 90 && c >= 65)
{
c += nCaesar;
if (c < 65)
{
c += 26;
}
else if (c > 90)
{
c -= 26;
}
}
else if (c <= 'z' && c >= 'a')
{
c += nCaesar;
if (c < 'a')
{
c += 26;
}
else if (c > 'z')
{
c -= 26;
}
}
return c;
}