printf

練習5-1のソースファイル

hello.cでは,printfという関数が使われています(hello.cには,printfというトークンがあり,これは関数名を表す識別子です.)

printfは,

与えられた入力を,画面に(ターミナルに)表示する

という処理を行う関数です.ターミナルに文字の列や数字などを表示する場合などに用います.

今回は,printfの二通りの「使い方」を学びます:

 

目次

 

書式化を行わない場合

まずは,より簡単な「書式化」を行わない場合について説明します.この場合,printf

「文字列リテラル」が入力として与えられたときに,画面(ターミナル)に「文字列」を表示する

という処理を行います.

function_printf

printf("文字列")ターミナルに文字列を表示

ここで,printfが関数名です.文字列をダブルクォーテーションで囲んだものが文字列リテラルです.

 

hello.cではprintf という関数に

これをプログラムでは

のように記述しています.実行すると,

と表示されます.

補足\n の意味についてはこちらのポイント5を参照.

 

練習6-1

練習6-1-1(教科書 List1_6に対応)

  1. 次のプログラムにおいて「福岡太郎」を自分の氏名に変更し,renshu6_1_1.cという名前で保存.

  2. 実行ファイル名を指定せずコンパイル.

  3. 実行.

コンパイル・実行方法については,こちらの9ページ目を参照のこと.

練習6-1-2

  1. 上記のrenshu6_1_1.cを編集し,printfを一度だけ使用して練習6-1-1と同じ結果が得られるようにする.

  2. 編集したファイルをrenshu6_1_2.cという名前で保存.

  3. renshu6_1_2.cをコンパイルし,renshu6_1_2という実行ファイルを生成.

  4. renshu6_1_2を実行.

 

書式化を行う場合

書式とは,英語ではformatといいますprintffはformatの「f」です.

用語の確認

今回は,数字を入力とする場合について扱います.文字列に対する書式化については,扱いません.

数字を入力とする場合

変換と数字をprintf関数への入力として与えると,指定された書式でターミナルに数字が表示されます.

fprint_1

printf("変換指定", 数字)

変換指定に基づき数字を表示

  • 整数小数点以下6桁に丸めて表示することはできない」などのように,与える数字のタイプ(型)と変換書式の与え方にはルールがあり,それを満たさなければエラーとなる.

  • 第一引数に"変換書式"第二引数に数字を入れること.また,変換書式の両端にダブルクオーテーションを忘れずにつけること(数字を文字列として表示させるため).

書式変換の具体例

例題1

10という整数を10進数で表示

出力は

 

例題2

10という整数を16進数で表示

出力は

(10進数の0, 1, ..., 8, 9, 10, 11, 12, 13, ...は16進数で0, 1, ..., 8, 9, a, b, c, d, ...に対応.)

 

例題3

3.1415という浮動小数点数を小数点以下3桁に丸めて表示

出力は

 

数字と文字列を入力とする場合

ここでは,

のように,数字と文字列を組み合わせて表示させたい場合について,扱います.

変換指定を含む文字列と数字をprintf関数への入力として与えると,指定された書式に変換された数字を伴う文字列が表示されます.

printf("変換指定を含む文字列")

ターミナルに数字を含む文字列を表示

fprint_2

例題4

「10を10進数で表示:」という文字列の後に,10を10進数で表示

出力は

 

例題5

「10を16進数で表示:」という文字列の後に,10を16進数で表示

出力は

 

複数の数字を入力とする場合

複数の数字をターミナルに表示させることもできます.

複数の数字を表示する場合には,printf関数の( )内部にカンマで区切って実引数を追加します.

printf("変換指定を複数含む文字列", 1つめの数字, 2つめの数字, ...)

ターミナルに,複数の数字を含む文字列を表示

 

例題6

「10を10進数で表示すると■で,16進数で表示すると□です」という文字列において,■に10を10進数で,□に10を16進数で表示

出力は

 

練習6-2

練習6-2-1(renshu6_2_1.cを完成させよ)

学籍番号の数字の部分(7桁)について,以下の2通りに表示せよ.

学籍番号が2212345の場合の出力結果の例

 

練習6-2-2:(renshu6_2_2.cを完成させよ)

学籍番号の4桁目までを整数,5桁目以降を小数点以下の数とみなして(学籍番号が2212345であれば「2212.345」とみなす),以下の2通りに表示せよ.

学籍番号が2212345の場合の出力結果の例