XOR加密错误char到int失去精度

时间:2015-01-19 21:13:38

标签: c++ xor

我无法让这个程序在UNIX服务器上运行。它似乎在Codeblocks上运行得很好但是然后使用Putty它会给出错误"来自' char *'到' int'失去精确度。

我试图让用户输入一个句子和一个单词作为键。然后输出句子只在每个字母之间有空格。

非常感谢帮助解决此错误。感谢。

#include <iostream>
#include <cstring>

using namespace std;

int main(){

string sentence;
string encrypted;
string unencrypt;
char key[] = "x";

cout << "Enter sentence: ";
getline(cin, sentence);

cout << "Enter key: ";
cin >> key;

for (int temp = 0; temp < sentence.size(); temp++){
encrypted += sentence[temp] ^ (int(key) + temp) % 2;
}
cout << "Encrypted = " << encrypted;

for (int temp = 0; temp < sentence.size(); temp++){
unencrypt += sentence[temp] ^ (int(key) + temp) % 2;
}
cout << endl;
cout << "Unencrypted = " << unencrypt;


return 0;

}

1 个答案:

答案 0 :(得分:1)

它给出了一个错误,因为“key”是一个包含2个元素的数组。 您需要取消引用keyint(*key)

你应该避免使用C风格的演员阵容:static_cast<int>(*key)

您的加密/解密程序是相同的。