[前へ]   [目次へ]   [次へ]

printf関数の機能(1)(C/C++)


以前紹介した printf 関数の機能の紹介の第1部です。

printf 関数は単に指定した文字列を画面に表示するだけではなく、
変数等の内容を文字列化して表示するという機能があります。

余談ですが、 printf 関数にはよく似た関数がいくつかあり、それらを総称して printf 系関数と呼びます。
これらは後々紹介します。

さて、 printf 関数は変数の内容を文字列化する時、体裁を整えることができます。
体裁指定は結構数がありますが、ただ画面に変数等の内容を表示するだけであれば、それほど複雑ではありません。

今回はただ単に変数の内容を printf で画面に出力してみます。

<  1>
<  2>
<  3>
<  4>
<  5>
<  6>
<  7>
<  8>
#include <stdio.h>

int main(void)
{
   
int test=10;//(1)int型の変数「test」を定義し、10で初期化
   
printf("%d\n",test);//(2)printf関数を使って変数「test」の中身を表示
   
return 0;
実行結果:
10

まず、(1)の部分で int 型の変数「 test 」を定義し、10で初期化します。
この行が終わった時点で、 test の中身は10です。
次に、(2)の部分で printf 関数を使って変数「 test 」の中身(10)を表示します。

今回 printf 関数には「 "%d\n" 」と「 test 」を渡しています。

このように、関数を呼び出す時に渡す値のことを 引数(ひきすう) と呼びます。
また、左から順に1,2,3・・・として、「第1引数」「第2引数」などと呼ぶ場合もあります。

printf 関数の第1引数 (早速使う(笑)) はどんな風に出力するかという書式指定です。

printf 関数は半角の % を特別扱いします。
この指定から第2引数以降の情報をどこに、どうやって使うかが決定します。

変換指定は % とそれ以降の数文字で構成されます。
また、 printf 関数はこの変換指定から第2引数以降の変数の型を取得します。
よって、変換指定と実際に渡す変数の型は一致させなければいけません。

今回使用した変換指定である「 %d 」は下の表の通り、 int 型( char や short でも良い)を示します。

printf 関数の変換指定の一部
変換指定要求型解説
%%(なし)%記号を配置します。
%cint
char
short
1バイト分(1文字)を直接配置します。(値は文字コードです)
%dint
char
short
数値を10進法で表現した文字列を配置します。(符号付)
%uint
char
short
数値を10進法で表現した文字列を配置します。(符号なし)
%xint
char
short
数値を16進法で表現した文字列を配置します。(符号なし、文字は小文字)
%Xint
char
short
数値を16進法で表現した文字列を配置します。(符号なし、文字は大文字)
%fdouble
float
浮動小数点値を10進法で表現した文字列を配置します。
%sconst char*ナル文字終端文字列として扱い、そのまま配置します。
実際には変換指定は複数のグループが集まって決定されているのですが、
これが結構ややこしく、全部解説しようとしたら相当な量になります。

上の表は中でも簡単かつ、わりと使うものを抜粋したものです。


Perl等をやったことがある人は、「print $test;」のようなノリで変換指定しないで入力しないように注意してください。
特にC言語だと間違って「printf(test);」と書いてしまってもなんとエラーになりません。
警告は出ると思いますが、そのまま実行しないように注意してください。
この例だったら多分実行直後に強制終了食らいますが、暴走する可能性もあります。
その上Win98とかだと暴走したままOSごと落ちたりすることがあります。(まぁ、再起動するだけで大抵は回復しますが)



[前へ]   [目次へ]   [次へ]

プログラミング講座 総合目次

最終更新 2008/10/17