2013-05-19 76 views

回答

4

是的,只是它之前,你的輸出將其轉換爲int,使其不被解釋爲一個字符:

char ch = 'A'; 
ch++; 
std::cout << static_cast<int>(ch); 

但是,請注意,這不能保證輸出對應於字符'B'的值。如果您的執行字符集是ASCII或其他一些理智的字符集,那麼它會是,但不能保證您的執行字符集(除了數字字符09,具有連續值)。

4

printf的工作方式與C++相同。但是,如果你想使用cout,你只需要投:

char ch = 'A'; 
ch++; 
std::cout << static_cast<int>(ch); 
0

是的,你可以和c一樣:在很多方面C++是c的超集。

+0

供參考:第一C++編譯器是翻譯器,轉換後的C++源代碼轉換成C,然後編譯的編譯器消息是_joy_。所以那個時候C做了C++所做的一切和更多的事情,儘管沒有那麼優雅。 – chux

4

否鑄造需要:

{ 
char ch='A'; 
ch++; 
std::cout << ch << ": " << +ch << '\n'; 
} 
+3

使用一元'+'會導致一個隱式轉換爲'int',對吧?這比明確的表演更好嗎? –

+3

@CarlNorum - 對。 「更好」是一個品味問題。我懷疑大多數人會喜歡明確演員。 –

1

這是可以做到在C++中完全相同的方式:

{ 
char ch='A'; 
ch++; 
printf("%d",ch); 
} 
相關問題