gpt4 book ai didi

c++ - 使用命令行提示的 Vigenere 密码

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:44:52 26 4
gpt4 key购买 nike

我正在尝试编写一个读入(-e 加密,-d 解密)、一个关键字(在加密期间使用)、原始消息来自的文本文件和另一个文本的 Vigenere Cipher加密/解密消息输出到的文件,全部来自命令行参数。我对如何从命令行读取所有内容作为字符串并使用字符进行实际加密有疑问。我发现很多其他程序只是使用 vigenere 密码,但没有一个程序的所有参数都是从命令行读入的。这是我的(未完成的)代码。

#include<iostream>
#include<string>
#include<fstream>
#include<sstream>

using namespace std;

char encipher(char key, char plain);
char decipher(char key, char cipher);

int main(int argc, char* argv[]){

ifstream inFile(argv[3]);
ofstream outFile(argv[4]);
string key = argv[2];
for (int i = 0; i < argc; i++){
string arg = argv[i];
if (arg == "-e"){
inFile.open(arg.c_str());
string plain = ;
encipher(key, plain);

}
else if (arg == "-d"){
inFile.open(arg.c_str());
decipher(key, cipher);
}
}


char encipher(char key, char plain){
for (int i = 0; i < key.size(); i++){
if (key[i] >= 'A' && key[i] <= 'Z')
key += key[i];
else if (key[i] >= 'a' && key[i] <= 'z')
key += key[i] + 'A' - 'a';
return key;
}


}
char decipher(char key, char cipher){

for (int i = 0; i < key.size(); i++){
if (key[i] >= 'A' && key[i] <= 'Z')
key -= key[i];
else if (key[i] >= 'a' && key[i] <= 'z')
key -= key[i] + 'A' - 'a';

}
}

最佳答案

尝试使用 strcmp 而不是直接比较两个字符串。在

if (arg == "-e")

else if (arg == "-d")

关于c++ - 使用命令行提示的 Vigenere 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40979292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com