2016-11-04 18 views
2

のstd ::進、16進値として印刷されるストリームに入れたデータを生じさせます。しかし、数字10〜15を表すために使用される文字A〜Fは、常にアルファベット小文字で表示されます。代わりに大文字を使用するように変更する方法はありますか?なぜC++は大文字ではなくstd :: hexを使用するときに小文字のアルファベットを出力するのですか?

+0

それが答えに簡単だったAri0nhh 'のstd :: uppercase' – Ari0nhh

+1

@を使用します;) –

+1

私は電子技術者午前にこれに使用されていないので、はい、それはありますオール – quantum231

答えて

4

代わりに大文字を使用するように変更する方法はありますか?

はい、std::uppercase I/Oマニピュレータを適用して、デフォルトの動作(小文字)を変更できます。上記の参照から

例:

#include <iostream> 
int main() 
{ 
    std::cout << std::hex << std::showbase 
       << "0x2a with uppercase: " << std::uppercase << 0x2a << '\n' 
       << "0x2a with nouppercase: " << std::nouppercase << 0x2a << '\n' 
       << "1e-10 with uppercase: " << std::uppercase << 1e-10 << '\n' 
       << "1e-10 with nouppercase: " << std::nouppercase << 1e-10 << '\n'; 
} 

出力:

0x2a with uppercase: 0X2A 
0x2a with nouppercase: 0x2a 
1e-10 with uppercase: 1E-10 
1e-10 with nouppercase: 1e-10 
+0

私はshowbaseと呼ばれるこの事が本当に必要でした。本は私の人生に革命をもたらしましたが、std :: uppercaseやstd :: showbaseについて言及していないstd :: hexについて教えてくれました。どのように非常に悲劇。私が失ったその時代は、決して戻ってこないでしょう。 quantum231 @ – quantum231

+0

はちょうどあなたが持つことができる[en.cppreference.com]、最良の参照を使用します。あなたはどこを調べるべきかを知る必要があります。言及したように、私はしばしばチップのデータシートを読むときに同様の方法で失われます。 –

関連する問題