我們可以打印的ASCII代碼,並用C 增加它 - > e.g:可以像在C中一樣使用C++打印字符的ASCII碼嗎?
{
char ch='A';
ch++;
printf("%d",ch);
}
這將輸出 「66」 在控制檯上。
這怎麼能在C++中完成?
我們可以打印的ASCII代碼,並用C 增加它 - > e.g:可以像在C中一樣使用C++打印字符的ASCII碼嗎?
{
char ch='A';
ch++;
printf("%d",ch);
}
這將輸出 「66」 在控制檯上。
這怎麼能在C++中完成?
是的,只是它之前,你的輸出將其轉換爲int
,使其不被解釋爲一個字符:
char ch = 'A';
ch++;
std::cout << static_cast<int>(ch);
但是,請注意,這不能保證輸出對應於字符'B'
的值。如果您的執行字符集是ASCII或其他一些理智的字符集,那麼它會是,但不能保證您的執行字符集(除了數字字符0
到9
,具有連續值)。
printf
的工作方式與C++相同。但是,如果你想使用cout
,你只需要投:
char ch = 'A';
ch++;
std::cout << static_cast<int>(ch);
是的,你可以和c一樣:在很多方面C++是c的超集。
否鑄造需要:
{
char ch='A';
ch++;
std::cout << ch << ": " << +ch << '\n';
}
使用一元'+'會導致一個隱式轉換爲'int',對吧?這比明確的表演更好嗎? –
@CarlNorum - 對。 「更好」是一個品味問題。我懷疑大多數人會喜歡明確演員。 –
這是可以做到在C++中完全相同的方式:
{
char ch='A';
ch++;
printf("%d",ch);
}
供參考:第一C++編譯器是翻譯器,轉換後的C++源代碼轉換成C,然後編譯的編譯器消息是_joy_。所以那個時候C做了C++所做的一切和更多的事情,儘管沒有那麼優雅。 – chux