C言語入門 第2回 printf




2014年10月より個人の方を対象に、Study C無料提供を開始しました。
C言語を勉強中の方は、学習・教育に最適なC言語インタープリタのStudy Cを使ってみてください(個人の方は無料です)。
大学・高専・高校などの教育機関での採用実績も多数あるロングセラー商品Study Cが、個人向けに無料提供を始めました。
インタープリタの手軽さに加え、ゲームや3Dタートルグラフィックで楽しく勉強したりと、C言語の学習を強力にサポートします。
ブロック崩しゲーム 3Dツリー クリスマスツリー
また、このようなボタンの用意されているページでは、掲載しているプログラムをStudy Cに直接ロードし実行したりすることができます。
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する
Study C無料利用についての詳細は、このページを参照してください。



1.画面への文字表示機能

 第1回C言語入門のように絵を描くのは視覚的にもわかりやすく楽しいプログラムですが、文字を表示することも重要な機能の一つです。 C言語で画面に文字や数字を表示するにはc言語のプログラムからprintfという機能を使います。printfを使って単純に 文字列を表示するには、次のように行います。

printf("表示したい文字列");

注)旧バージョンのStudy Cではコマンドラインから直接printf...と入力すれば実行できま したが、今回のバージョンではコマンドが増えた関係上直接入力ができなくなってしまい ました。

 printfを使って画面にHelloと表示させてみましょう。F12キーでエディタに移ってprintfを main(){ ... }で囲います。

注)これ以降の説明では「F12キーエディタに移ってでプログラムを入力して、F12キーで コマンドモードに戻りrunコマンドで実行」という表現は省略するので、この手順は よく覚えておいてください。

main()
{
        printf("Hello");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

入力したらF12キーでコマンドモードに戻りrunコマンドで実行してみましょう。 プログラムに間違いがなければHelloと表示されます。入力に誤りがあるとエラー番号と エラーメッセージが表示されるので、入力したプログラムを確認して訂正して下さい。

 次に2つのprintfを使って1行目にHelloと表示し、2行目にStudy Cと表示してみましょう。

main()
{
        printf("Hello");
        printf("Study C");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

このプログラムを実行すると2行に別れて表示されずに

HelloStudy C

と1行に表示されてしまいます。

 上記の例では、たとえ2つのprintfを使っても改行は行われません。printfは自動的に 改行する機能はないので、printf("HelloStudy C");と同じ表示結果になってしまいます。 表示する文字の中で改行したい位置に文字\nという2文字を挿入すると、printfはその位置 で改行を行います。

main()
{
        printf("Hello\nStudy C");
}
Hello
Study C
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

のように2行にわたって表示することができます。

 今度は、2つのprintfを使って2行に表示してみましょう。

main()
{
        printf("Hello");\n
        printf("Study C");
}
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...
ERROR(402) 演算式に誤りがあります.

これでは上記のようなエラーが発生します。\nは同じように特別の意味を持った 文字なので、"..."の中に書かなくてはなりません。今の例のように、"..."の外に\nを 書くとエラーが発生してしまいます。正しくは

main()
{
        printf("Hello\n");
        printf("Study C");
}
Hello
Study C
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...




2.計算結果の表示

 printfは文字列だけではなく、数値や式の計算結果などを表示することができます。 数値を表示するには次のような形式で行います。

printf("%d", 表示したい式や数値);

 画面に1+2+3の結果を表示させてみましょう。

main()
{
        printf("%d", 1+2+3);
}
6
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

 Answer = 式の結果といったような表示を行うことも可能です。

printf("%dを含む表示したい文字列", 式);

 printfはこのように表示したい文字列の中から%dという部分を見つけ出し、 その部分を式の結果や数値に置き換えて表示しています。また、一度に表示できる式の結果も1つではなく、同時に複数の表示を行うこともできます。この場合、%dと式の数が 同数である必要があります。式が複数ある場合、式と式の間は,(コンマ)で区切ります。

 5と6の和と差をWA = ?、SA = ?という形式で表示します。

main()
{
        printf("WA = %d SA = %d", 5+6, 5-6);
}
WA = 11 SA = -1
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

C言語では小数点の計算もできますが、この方法では小数点以下のある数字を指定するとエラーになってしまいます。また、わり算などで 結果に小数点が含まれるような計算を行っても整数部分の結果しか得られません。

 式の部分で足し算、引き算にはキーボードにある+と-の文字を使いますが、かけ算とわり算には*と/を使います。足し算以外の四則演算の結果を表示させてみましょう。

main()
{
        printf("3 - 1 = %d\n", 3-1);
        printf("3 * 4 = %d\n", 3*4);
        printf("4 / 2 = %d\n", 4/2);
        printf("3 / 2 = %d\n", 3/2);
}
3 - 1 = 2
3 * 4 = 12
4 / 2 = 2
3 / 2 = 1
Study Cにロードする Study Cにロードし編集する Study Cにロードし実行する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて...

 printfはprintf(書式, 式, 式, ...);という形式で使用します。 書式とは"..."(クォーテーションマーク)で囲まれた部分をいいます。 式は省略可能ですが、書式は必ず必要です。式が1つもなく書式だけの例がHelloと表示させた例です。書式中で使う特殊な文字は、\nや%dの他にも%xや%o (%xは16進数、%oは8進数、%dは10進数)など多数用意されています。