我无法让这个程序在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;
}
答案 0 :(得分:1)
它给出了一个错误,因为“key”是一个包含2个元素的数组。
您需要取消引用key
。
int(*key)
你应该避免使用C风格的演员阵容:static_cast<int>(*key)
您的加密/解密程序是相同的。