密码不会工作

时间:2017-08-02 14:53:21

标签: c++ compiler-errors

我最近开始学习c ++并且我一直在努力创建挑战自我的解决方案,其中一个挑战是加密文本并最终将其保存到文本文件的密码。我目前使用的代码将无法编译,因为它不会识别替换语句,这是我的代码到目前为止。

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <Windows.h>
#include <string>

int main()
{
// declare all variables
std::string text;
std::string s;
std::string uncipheredText;

//Introducing the program
std::cout << "Welcome to Cipher." << std::endl;

//Asks the user to input the text they want to encrypt and saves it to the unciphered text variable.
std::cout << "Enter the text you want to cipher" << std::endl;
std::cin >> s;

//replaces all characters in the variable "s"
std::replace(s.begin(), s.end(), 'Q', 'M');
std::replace(s.begin(), s.end(), 'E', 'B');
std::replace(s.begin(), s.end(), 'T', 'C');
std::replace(s.begin(), s.end(), 'U', 'Z');
std::replace(s.begin(), s.end(), 'O', 'S');
std::replace(s.begin(), s.end(), 'L', 'F');
std::replace(s.begin(), s.end(), 'J', 'H');
std::replace(s.begin(), s.end(), 'G', 'K');
std::replace(s.begin(), s.end(), 'D', 'P');
std::replace(s.begin(), s.end(), 'A', 'I');
std::replace(s.begin(), s.end(), 'X', 'Y');
std::replace(s.begin(), s.end(), 'V', 'R');
std::replace(s.begin(), s.end(), 'N', 'W');
std::replace(s.begin(), s.end(), ' ', '#');


s = text;

std::cout << "Encrypted Text: " << text << std::endl;

//replaces all characters in the variable "s"
std::replace(s.begin(), s.end(), 'Q', 'M');
std::replace(s.begin(), s.end(), 'E', 'B');
std::replace(s.begin(), s.end(), 'T', 'C');
std::replace(s.begin(), s.end(), 'U', 'Z');
std::replace(s.begin(), s.end(), 'O', 'S');
std::replace(s.begin(), s.end(), 'L', 'F');
std::replace(s.begin(), s.end(), 'J', 'H');
std::replace(s.begin(), s.end(), 'G', 'K');
std::replace(s.begin(), s.end(), 'D', 'P');
std::replace(s.begin(), s.end(), 'A', 'I');
std::replace(s.begin(), s.end(), 'X', 'Y');
std::replace(s.begin(), s.end(), 'V', 'R');
std::replace(s.begin(), s.end(), 'N', 'W');
std::replace(s.begin(), s.end(), ' ', '#');

s = uncipheredText;

std::cout << "Decrypted Text: " << uncipheredText << std::endl;

/*
ofstream myfile;
myfile.open("dump.txt");
myfile << text;
myfile.close();
*/

return 0;
}   

1 个答案:

答案 0 :(得分:0)

如@AlgirdasPreidžius的评论所述,您需要包含算法库。此外,您复制了此代码:

//replaces all characters in the variable "s"
std::replace(s.begin(), s.end(), 'Q', 'M');
std::replace(s.begin(), s.end(), 'E', 'B');
std::replace(s.begin(), s.end(), 'T', 'C');
std::replace(s.begin(), s.end(), 'U', 'Z');
std::replace(s.begin(), s.end(), 'O', 'S');
std::replace(s.begin(), s.end(), 'L', 'F');
std::replace(s.begin(), s.end(), 'J', 'H');
std::replace(s.begin(), s.end(), 'G', 'K');
std::replace(s.begin(), s.end(), 'D', 'P');
std::replace(s.begin(), s.end(), 'A', 'I');
std::replace(s.begin(), s.end(), 'X', 'Y');
std::replace(s.begin(), s.end(), 'V', 'R');
std::replace(s.begin(), s.end(), 'N', 'W');
std::replace(s.begin(), s.end(), ' ', '#');