printf

printf

printf 関数で画面に文字を表示。「%~(変換文字)」や「\~(エスケープ文字、エスケープシーケンス)」など。
サイト全体の目次

稿


稿

printf

このセクションのリスト

/*01*/ #include <stdio.h>  /* printf のために必要 */
/*02*/ 
/*03*/ main()
/*04*/ {
/*05*/   printf("Hello, world.\n");
/*06*/   printf("%d + %d = %d です。\n", 2, 3, 2 + 3);
/*07*/ 
/*08*/   return 0;
/*09*/ }
/*10*/ 

list-1.2.1-05

printf関数は画面に文字列を表示(出力)するための関数です。引数のところに表示したい文字列を書きます。なお、C言語では文字列を "~" の形で表します。

printf の第一引数の文字列では、「\」「%」は特殊な文字として扱われるので、これらを表示させたいときはそれぞれ「\\」「%%」としなければいけません。例えば、

printf("C:\\Windows");

のようにします。

また、文字列の途中で改行してはいけません。例えば

printf("Hello,
             World.");

は間違いです。また、printf を
printf("Hello,");
printf("World.")

としても途中で改行されません。改行したいときには
printf("Hello,\nWorld.\n");

のように「\n」を使います。このように「\~」で表される特殊な意味を持つ文字をエスケープシーケンス(エスケープ文字)と言い、他にも.のようなものがあります。

\a 警告(ベル)
\b バックスペース
\f 改項
\n 改行
\r 復帰
\t 水平タブ
\v 垂直タブ
\\ 円記号
\? 疑問符
\' シングルクウォーテーション
\" ダブルクウォーテーション

list-1.2.1-06

printf 関数は必要に応じていくつでも引数をとることが出来ます。

printf("%d + %d = %d です。\n", 2, 3, 2 + 3);

を例にとって見てみましょう。第一引数は文字列で、第二引数、第三引数は整数になっています。第四引数は、まだやっていませんがこれも加算された結果が整数として扱われます。そして一引数の「%d」となっている部分は第二引数以降の値に順に置き換わる仕組みになっています。つまり、この printf は
2 + 3 = 5 です。

となります。このように、printf の第一引数の中で第二引数以降の値に置き換えられる「%~」という形の文字を変換文字といいます。変換文字は当てはめる値がどのようなタイプ(整数や小数等など)かにより変わってくるので、適切なものを使用してください.。この.の中に「浮動小数点数」というものがでてきますが、これは単に「小数」だと考えてもらってかまいません (*1) 。

コンピュータで小数を扱う方法の一つです。詳しくは情報処理関連の書籍を参考にしてください。
符号付整数
%d システムに依存した範囲の符号付整数
%ld 符号付32bit整数
%lld 符号付64bit整数(C99)
符号なし整数
%u システムに依存した範囲の符号なし整数
%lu 符号なし32bit整数
%llu 符号なし64bit整数(C99)
符号なし整数の8進数、16進数表示
%o システムに依存した範囲の8進数
%lo 符号なし32bit整数を8進数で表示
%x システムに依存した範囲の16進数
%lx 符号なし32bit整数を16進数で表示
浮動小数点数
%f 32bit(単精度)浮動小数点数
%lf 64bit(倍精度)浮動小数点数
%e 32bit(単精度)浮動小数点数を指数形式で表示
%le 64bit(倍精度)浮動小数点数を指数形式で表示
文字
%c 一文字
%s 文字列

▲システムに依存した範囲とは、例えば16bit環境なら16bit整数、32bit環境なら32bit整数となる。
▲符号付Nbit整数とは「-2の(N/2)乗~2の(N/2)乗-1」の範囲。例えば32bitなら「-2の16乗~2の16乗-1」で「-2,147,483,648 ~ 2,147,483,647」となる。
▲符号なしNbit整数とは「0~2のN乗-1」の範囲。例えば32bitなら「0~2の32乗-1」で「4,294,967,295」となる。
▲浮動小数点数の指数形式表示は「1.234E+3」や「1.234E-3」のような形になり、前者は「1.234×10の3乗」を、後者は「1.234×10の-3乗」を意味する。
▲32bit浮動小数点数の範囲は「3.4E±38」、64bit浮動小数点数の範囲は「1.7E±308」となる。

さらに「%」と「d」などの文字の間に修飾子をはさんで表示形式を制御することが出来ます。例えば、「%5d」のように数値を挟むとその数値分の桁の中に右寄せで表示されます。もし「%5d」に対して「123」を表示させたら「[][]123([]は空白)」と表示されます。さらに「%05d」のように「0」をつけると空白部分を「0」で埋め、「%-5d」のように「-」をつけると左寄せになります。小数に対しては「%5.3f」や「%.3f」のようにすると、小数点以下を指定の桁数分だけ表示します。この例だと、小数点以下3桁まで表示されることになります。このように printf は意外と奥が深く、細かい点を言えば他にもいくつかあるのですが、とりあえず普段はここで説明した内容だけで事足りると思います。もしさらに詳しく知りたい方は他の参考書などをご覧ください。

なお、C言語では一文字を扱う場合「'a'」のようにシングルクウォーテーションで囲みます。一文字であっても「"a"」とした場合は文字列として扱われる点に注意してください。文字、文字列については別のところで詳しく解説します。


読み込み中・・・
10秒待っても表示が変わらない場合、次の理由が考えられます。
・Javascript が無効になっています。
・検索エンジンのキャッシュを見ています。
サイトホームへ / 上位ページへ / ページトップへ / PAROFトレンドショッピングへ
Copyright (C) 2010 totobon all right reserved.