printf関数とscanf関数はC言語で文字の入力や出力をするために使われる関数です。
この2つの関数は最初から用意されているライブラリ関数というもので、stdio.hというヘッダーファイルを読み込むことで使用することができます。
printf()の使い方
printf()を使ったコード例を見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 |
printf_demo.c #include <stdio.h> int main(void) { printf("Hello world\n"); return 0; } |
printf()は上記コードのようにして使います。
printf()の括弧の中にダブルクォーテーション(“)で出力したい文字をくくって入れることで、画面に文字を出力させることができます。
ターミナル(Mac)で動かしてみましょう。
1 2 3 4 5 |
$ gcc printf_demo.c $ ./a.out Hello world |
『Hello world』と文字をちゃんと画面に出力できていることがわかりますね!
次に、以下のコードを実行してみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#include <stdio.h> int main(void) { int number; char *text; number = 100; text = "Hello world"; printf("text: %s, number: %d\n", text, number); number = 5000; text = "Hello hello world"; printf("text: %s, number: %d\n", text, number); number = number + number; text = "Hello hello hello world"; printf("text: %s, number: %d\n", text, number); return 0; } |
これは、変数という値を入れる箱(今は理解しなくても大丈夫)に、入っている値をprintf()で出力するプログラムです。
このプログラムを実行すると、以下のようになります。
1 2 3 4 5 6 7 |
$ gcc printf_demo_2.c $ ./a.out text: Hello world, number: 100 text: Hello hello world, number: 5000 text: Hello hello hello world, number: 10000 |
numberという整数を入れる変数(箱)とtextという文字列を入れる変数(箱)に入れた値を、printf()を使って3回画面に出力しています。
printf()の中にある%dや%sというのは、『フォーマット指定子』と呼ばれているもので、変数を画面に出力するときに使われます。
上記のコードでは順番に%dにnumberが、%sにtextが当てはまるようになっています。
scans()の使い方
scanf()を使ったコード例を見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 |
int main(void) { int number; printf("Enter number\n"); scanf("%d", &number); printf("You entered %d.\n”, number); return 0; } |
このコードを実行すると、以下にような画面になります。
1 2 3 4 5 |
$ ./a.out Enter number [改行] |
これは、scanf()がユーザーの入力を待っている状態です。
ユーザーの入力を待っているので、scanf()の後にあるprintf(“You entered %d.”, number);は、まだ実行されていません。
数字を入力してみましょう。
1 2 3 4 5 6 |
$ ./a.out Enter number 100 You entered 100. |
すると、『You entered 100.』が出力されましたね。
これは入力した100がnumberに入れられて、その後にprintf()を使って100を出力しています。
つまり、scanf()はコンソールでユーザーから入力された値を指定された変数に格納する関数だということがわかります。