C/C++のデータ型と書式を知る:出力の書式
沖林正紀
2008/02/08 08:00
C/C++では、書式とデータ型とが密接に関連している。今回は書式の指定について紹介しよう。
データ出力時の書式
まずは出力時の書式を表す記号(変換指示子)を、例を用いながら紹介しよう。これはprintf()などの関数で用いられる。
文字列
(例) printf( "|%15s|", "Hello, World!" ); /* | Hello, World!| */
- %s
- 文字列全般
- %10s
- 右寄せで10バイト以上の文字列。文字数が満たないときは、全体のバイト数が合うように左に空白が詰められる
- %-10s
- 左寄せで10バイト以上の文字列。文字数が満たないときは、右に空白が詰められる
- %c
- 1バイトで表される文字
(*)文字列に全角文字が含まれるときは、バイト数と文字数とは一致しない
整数(int)
(例) printf( "|%5d %+7d %-5d|", 1234, 5678, 9012 ); /* | 1234 +5678 9012 | */
- %d
- 整数全般
- %+d
- 値が正の場合、左端に正の符号をつける
- %5d
- 右寄せで5桁以上の整数。値が負のときは符号も桁数に含む。桁数が満たないときは、全体で5桁になるように左に空白が詰められる
- %-5d
- 左寄せで5桁以上の整数。桁数が満たないときは、全体で5桁になるように右に空白が詰められる
- %+5d
- 右寄せで符号を含めて5桁以上の整数
- %05d
- 右寄せで5桁以上の整数。桁数が満たないときは左に0を詰める
- %u
- unsigned int型など、修飾子unsignedが添えられたデータ型に対して用いる
- %o
- 8進数に変換する。%#oのときは数値の先頭に0がつく
- %x
- 16進数に変換する。%#xのときは先頭に0xがつく。XのときはAからFまでを大文字にする
小数点付きの実数(float, double)
(例) printf( "|%5.3f %-9.4f|", 12.34, 56.789 ); /* |12.340 56.7890 | */ printf( "|%012.3e %+13.5e|", 12.34, 56.789 ); /* |001.234e+001 +5.67890e+001| */ printf( "|%6.3g %+3.5g|", 1234.5678, 56.789 ); /* |1.23e+003 +56.789| */
- %f
- 小数点付きの実数全般
- %5.3f
- 右寄せで小数点を含む全体が5桁、小数点以下が3桁の実数。値が負のときは符号も桁数に含む。小数点以下の桁数が満たないときは右に0が詰められ、全体の桁数が満たないときは左に空白が詰められる
- %-5.3f
- 左寄せで小数点を含む全体が5桁、小数点以下が3桁の実数
- %05.3f
- 右寄せで小数点を含む全体が5桁、小数点以下が3桁の実数。全体の桁数が満たないときは、左に0が詰められる
- %12.3e
- 右寄せで指数表示(e+XXX)を含む全体が12桁、仮数部(eより左)の小数点以下が3桁の実数。eをEにすると、指数部の表示もE+XXXのようになる
- %+13.5e
- 右寄せで指数表示(e+XXX)を含む全体が13桁、仮数部(eより左)の小数点以下が5桁の実数。小数点以下の桁数が満たないときは右に0を追加し、値が正のときにも符号を表示する
- %g
- 同じデータに対して%eと%fを適用してみて、桁数の少ないほうにする
書式指定を用いる関数
最後に、これらの書式指定を用いる関数のうち主なものを以下に示す。関数名の末尾にfがついているのが特徴的である。
- printf() 前述の例でも用いているが、標準出力(コンソール画面など)に書式に従った文字列を出力する
- sprintf() 書式に従った文字列を変数に渡す
- fprintf() ファイルに対して書式に従った文字列を出力する
次回は、入力の場合について紹介しよう。
- 特集: C/C++のイロハ:メモリ管理からオブジェクト指向まで (15件)
- ホワイトペーパー
- 話題のタグ
iPhone 3G
Webデザイン
プログラミング言語
Flash
Database
Ajax
SOA
Tips
Linux
iPod touch
Webアプリケーション開発
RIA
Adobe
Firefox 3
Safari
iPhone
XML
server
モバイル
Apache
Ruby
脆弱性
CSS
JavaScript
Mozilla
Apple
Opera
携帯電話機
入門
ソフトウェア開発
仮想化ソフトウェア
リファレンス
HTML
データベース
Python
Mac OS X
Java
仮想化
開発環境
オープンソース
Windows
PHP
Google
Webサービス
Firefox
プロジェクト管理
Internet Explorer
小技
Off Topic
ブラウザ
話題のタグを見る »
文字にドロップシャドウの効果をつける--FirefoxとSafariのCSS対応
iPhoneにAdiumが載らない2つの理由
iPhone 3Gの節電術
マイクロソフトはIE 8で地雷を踏んだ?
マイクロソフト、Internet Explorer 8のベータ2をリリース
「iPhone」のパスコードロックに深刻な脆弱性--連絡先情報が読み取られる危険も
Windows XPのバックアップユーティリティについて知っておくべき10のこと
S・ウォズニアック氏:「エンジニアは自分の心に従って行動すべき」--IDFインタビュー
Firefox 3.1のHTML 5対応を検証--Canvas Text APIとCanvas Shadow API
グーグルが、無料社食をついに廃止?--真実はいかに
iPhoneからサーバにSSHログイン:TouchTerm
トップページにみる日本のウェブデザイン--表現したい人たちが集うMySpace
モジラ、「Firefox 3.1」でJavaScript実行を大幅に高速化
DELLが掲げる「新・仮想化アセスメントサービス」
セキュリティ対策レベルテスト公開!
Techno Exchange
ZDNet Japan ホスティング特集
仮想化環境で求められるストレージの要件
APC SOLUTIONS FORUM 2008をレポート
ZDNet Japan Green IT
「シンプル」&「低コスト」な運用管理
Webセキュリティ特集