文字列の出力
文字列をプロンプト上に出力するには printf() 関数を使う。ただし,stdio.h をインクルード(#include <stdio.h>)しなければならない。
たとえば「hello, world」という文字列をプロンプト上に出力するには以下のコードを main() 関数内に書く。なお,\(バックスラッシュ) はフォントによっては ¥ とも表示される。
printf("hello, world\n");
ここで,\n は「改行」を意味している。\n はエスケープ シーケンスと呼ばれ,下に挙げるようなものがある。
| 文字列 | 意味 |
|---|---|
\a |
警告音 |
\f |
ページ送り |
\n |
改行 |
\r |
同じ行の先頭に戻る |
\t |
水平タブ |
\v |
垂直タブ |
\\ |
「\」(「¥」) の表示 |
\' |
「'」(アポストロフィー)の表示 |
\" |
「"」(ダブルクォーテーション)の表示 |
\0 |
ヌル文字 |
数値・文字の出力
まず整数や小数(浮動小数点数)を出力するには次のように書く。
printf("%d\n", 123);
printf("%f\n", 10.5);
123
10.500000
このように,整数値の出力には %d,浮動小数点数の出力には %f または %lf を用いる。ただし,実際にソースコードを組んで実行してみると分かるが,浮動小数点数は(デフォルトで)小数点以下 6 桁出力される。
浮動小数点数を小数点以下 6 桁以外で表示するには,%.桁数f または %.桁数lf という風に % と f(lf) の前に,.(ドット,ピリオド) に続けて桁数を書く。下に例を挙げる。
printf("%.3f\n", 3.141592); /* 小数点以下3桁まで表示 */
3.142
このように,四捨五入して表示される。
次に文字を出力するには次のように書く。
printf("%c\n", 'A');
A
このように,文字の出力には %c を用い,これに対応する引数の文字は ' でくくる。ただし,この方法で出力できるのは 1 文字だけである。C 言語や C++ などのプログラミング言語では「文字」と「文字列」は区別される。
%d や %c などを変換仕様といい,次のようなものがある。
| 文字列 | 意味 |
|---|---|
%d |
10 進整数値 |
%o |
8 進整数値 |
%x |
16 進整数値 |
%f |
浮動小数点小数値 |
%lf |
浮動小数点小数値 |
%c |
1 文字 |
%s |
文字列 |
%p |
変数のアドレス |
複数の値(数値・文字)の出力
複数の数値や文字を出力するには,次のようにする。
printf("数値:%d, 文字:%c\n", 19, 's');
数値:19, 文字:s
このように変換仕様を複数書くと printf() の第 2 引数から順番に対応して出力される。
printf() 関数の引数の対応まとめ
printf() 関数
| ヘッダ ファイル | stdio.h |
|
|---|---|---|
| 書式 [2] | int printf(const char *format, ...); |
|
| 戻り値 | int [3] |
出力成功:転送したバイト数 出力失敗:負の値 |
| 引数 | const char *format |
表示する文字列や変換仕様 |
| 第 2 引数以降(省略可) | 変換仕様がある場合に,それに対応する値 | |
エスケープ シーケンス
| 文字列 | 意味 |
|---|---|
\a |
警告音 |
\f |
ページ送り |
\n |
改行 |
\r |
同じ行の先頭に戻る |
\t |
水平タブ |
\v |
垂直タブ |
\\ |
「\」(「¥」) の表示 |
\' |
「'」(アポストロフィー)の表示 |
\" |
「"」(ダブルクォーテーション)の表示 |
\0 |
ヌル文字 |
変換仕様
| 文字列 | 意味 |
|---|---|
%d |
10 進整数値 |
%o |
8 進整数値 |
%x |
16 進整数値 |
%f |
浮動小数点小数値 |
%lf |
浮動小数点小数値 |
%c |
1 文字 |
%s |
文字列 |
%p |
変数のアドレス |