C++ 简单加密和解密TXT文件[C+;+;]
所以我试图通过改变字符来创建某种加密和解密文本。 这是我的密码:C++ 简单加密和解密TXT文件[C+;+;],c++,C++,所以我试图通过改变字符来创建某种加密和解密文本。 这是我的密码: string row; string fileName = "NULL"; const string encrypt[63] = { "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z", "A","B","C","D","E",
string row;
string fileName = "NULL";
const string encrypt[63] = { "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"0","1","2","3","4","5","6","7","8","9" " " };
const string decrypt[63] = { "!","@","#","$","%","^","&","*","(",")","_","-","|","~","`",":", "/", "<", ">", ".",
"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",
"Q","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J" };
printf("Would you like to read or write file ?");
cin >> row;
printf("What the Name of the File?");
cin >> fileName;
if (row._Equal("write") || row._Equal("Write"))
{
ofstream file(fileName + ".txt");
string text;
if (file.is_open())
{
printf("What Text You Like To Encrypt?");
cin.ignore();
getline(cin, text);
string nText;
for (size_t i = 0; i < text.length(); i++)
{
int num = NULL;
num = text.find(text.find(encrypt[i]));
if (num != NULL) {
nText.append(decrypt[num]);
}
num = NULL;
}
file << nText;
file.close();
}
}
else if (row._Equal("read") || row._Equal("Read"))
{
string text;
ifstream file(fileName + ".txt");
if (file.is_open())
{
string nText;
while (getline(file, text))
{
for (size_t i = 0; i < text.length(); i++)
{
//Almost Same with Encrypt.
}
}
printf("\nDecrypted File: %s \n", text.c_str());
file.close();
}
}
字符串行;
字符串fileName=“NULL”;
常量字符串加密[63]={“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”,
“A”,“B”,“C”,“D”,“E”,“F”,“G”,“H”,“I”,“J”,“K”,“L”,“M”,“N”,“O”,“P”,“Q”,“R”,“S”,“T”,“U”,“V”,“W”,“X”,“Y”,“Z”,
"0","1","2","3","4","5","6","7","8","9" " " };
常量字符串解密[63]={“!”、“@”、“#”、“$”、“%”、“^”、“&”、“*”、“(”、”、“-”、“|”、“~”、“`、“:”、“/”、“、”、“,”,
“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”,
“Q”、“W”、“E”、“R”、“T”、“Y”、“U”、“I”、“O”、“P”、“A”、“S”、“D”、“F”、“G”、“H”、“J”};
printf(“您想读还是写文件?”);
cin>>世界其他地区;
printf(“文件名是什么?”);
cin>>文件名;
如果(行等于(“写”)| |行等于(“写”))
{
流文件(文件名+“.txt”);
字符串文本;
if(file.is_open())
{
printf(“您想要加密什么文本?”);
cin.ignore();
getline(cin,text);
字符串文本;
对于(size_t i=0;i 文件我已设法使其工作如下:
for (size_t i = 0; i <= text.length(); i++)
{
for (int j = 0; j <= 63; j++)
{
if (text[i] == encrypt[j])
{
nText += decrypt[j];
}
}
}
for(size\u t i=0;i等于
std::string
的成员?不要对数字使用NULL
。在“成功”时打印num
的值不要使用内部实现函数,如\u Equal
。使用==
。您需要使用调试器并逐步完成代码