私は基本的な暗号化プログラムを書いていますが、暗号化されたテキストから通常はUnicode文字の形式で入力します。私が行うときしかし、この:それは私に間違った答えを与え、文字コードを取得しますC++の文字が正しく処理されない
cout << "Your decrypted string is : " << decryptstring(text, key) << endl;
間違った完全なè
としては-118
になります。
しかし私が行うとき:それはシームレスに動作
cout << "Your decrypted string is : " << decryptstring("è", key) << endl;
!
これを修正するにはどうすればよいですか?あなたが私の他のコードを見る必要があるならば、ちょうど尋ねる。あなたはUnicodeのワイド文字を使用する必要が
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string decryptstring(string text, string key)
{
//Declare variables
int i = 1;
int result;
int tmp;
int tmp2;
vector <char> arr;
//Start decryption
while(i <= text.length())
{
/*
Get letter from the string and get letter from key
and use Vigenere cipher to decrypt the data.
*/
tmp = text[i - 1];
tmp2 = key[i - 1];
cout << tmp << endl;
//Get encrypted value
result = tmp - tmp2;
//Change it into readable stuff
arr.push_back(result);
//Increment i
i++;
}
string str(arr.begin(), arr.end());
return str;
}
'text'が間違ったエンコーディングです。 – tkausl
真剣に、私たちはこれに答えるためのリーダーです。あなたはあなたのコードを一切与えず、あなたは 'text'の型を定義しなくても...これは全く不可能です。回答可能な質問をする方法についてのヘルプセクションを読むことをお勧めします。 –
@tkauslどうすれば修正できますか? – aidan