2017-09-28 83 views
-2

我有兩個問題實際上在C++中定義char變量時使用單引號還是雙引號?

我想在C++中使用XOR操作進行加密。當我加密任何兩個字符我得到?作爲加密的角色爲什麼是這樣?

下面是我的代碼Xoring a和b的示例。

#include<iostream> 
using std::cout; 
using std::cin; 
int main() 
{ 
    char x='a'; 
    char y='b'; 
    char d=x^y; 
    cout<<"a xor b = "<<d<<"\n"; 
    return 0; 
} 
+2

您可能需要閱讀[好書](https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and -list)。另外,'char x =「a」;'是無效的,所以你的(第一個)問題是沒有意義的。 – Rakete1111

+3

看來你是在問一個問題(我使用哪個引號),但是真的想問另一個問題(爲什麼不給出我想要的結果)。考慮[編輯]你的問題來澄清你的實際問題 – Tas

+0

你期望這個程序輸出了什麼? –

回答

3

當你輸出字符,這是不可打印的(和下方的「空間」,這是32,大部分都是),這取決於在那裏你這樣做對你越來越問號或正方形。要查看異或的整數值,請將d替換爲(int)d

+0

,或者簡單地使用['cout << + d'](https ://stackoverflow.com/q/14644716/995714) –

+0

空間並不總是32.除了作爲最後的邊界,它的實際值取決於正在使用的字符編碼。 – user4581301

+0

@ user4581301,實際上,空間取決於語言環境,但是,在當前的示例中,沒有一個名爲std :: setlocale(),所以默認的一個是經典的ASCII,空格32和控制字符0-31。 –