
C言語基礎|puts関数による表示
puts関数とは何か
これまでの章では、画面への表示に主に printf 関数を使ってきました。
printf はとても高機能ですが、実は 文字列を表示するだけ であれば、
もっとシンプルに使える関数があります。
それが puts 関数 です。
puts の末尾の s は、
string(文字列)
に由来しています。
一般に puts は
プットエス
などと発音されます。

puts関数の役割
puts 関数は、
- 指定した文字列を表示する。
- 表示のあとに自動で改行する。
という、とてもシンプルな表示専用の関数 です。
puts("表示したい文字列");
この1行で、
文字列の表示と改行が同時に行われます。
まずは全体のプログラムを見てみよう
変数とキーボード入力を利用して、
二つの整数を読み込み、その和を表示する
プログラムを作ってみましょう。
プロジェクト名:chap1-12-1 ソースファイル名:chap1-12-1.c
Visual Studio でこのプログラムを実行するには、SDLチェック設定を変更しておく必要があります。
1.プロジェクト名を右クリックして、「プロパティ」をクリックします。
2.「C/C++」→「全般」→「SDLチェック」を「いいえ」に切り替えて「OK」をクリックします。
// 読み込んだ二つの整数の合計を表示
#include <stdio.h>
int main(void)
{
int a, b;
puts("二つの整数を入力してください。");
printf("1つ目の整数 : "); scanf("%d", &a);
printf("2つ目の整数 : "); scanf("%d", &b);
printf("合計は%dです。\n", a + b);
return 0;
}
実行例
二つの整数を入力してください。
1つ目の整数 : 12
2つ目の整数 : 8
合計は20です。最初の案内メッセージの表示に、
puts 関数が使われている点に注目してください。
puts関数の特徴を整理しよう
puts 関数と printf 関数の違いを、表で整理してみましょう。
| 項目 | puts | printf |
|---|---|---|
| 表示できる内容 | 文字列のみ | 文字列・数値 |
| 書式指定 | 不可 | 可能 |
| 改行 | 自動で行う | 明示的に指定 |
| 実引数の数 | 1個 | 複数可 |
この表が示しているのは、
puts は単純表示、printf は高機能表示
という役割分担です。
puts と printf の違いをコードで比較
次の2行は、ほぼ同じ表示結果になります。
printf("ABCDE\n");
puts("ABCDE");違いは、
改行文字 \n を 自分で書くか、書かなくてよいか
という点です。
puts関数が向いている場面
puts 関数は、次のような場面で特に便利です。
- 案内メッセージを表示したいとき
- 書式指定や数値表示が不要なとき
- 必ず改行したいとき
puts("処理を開始します。");このような用途では、
printf よりも 簡潔で読みやすい プログラムになります。
計算結果を変数に保存してから表示する
次は、
計算結果を一度変数に保存してから表示する例を見てみましょう。
プロジェクト名:chap1-12-2 ソースファイル名:chap1-12-2.c
Visual Studio でこのプログラムを実行するには、SDLチェック設定を変更しておく必要があります。
1.プロジェクト名を右クリックして、「プロパティ」をクリックします。
2.「C/C++」→「全般」→「SDLチェック」を「いいえ」に切り替えて「OK」をクリックします。
// 合計を変数に保存してから表示
#include <stdio.h>
int main(void)
{
int x, y;
puts("二つの整数を入力してください。");
printf("整数x : "); scanf("%d", &x);
printf("整数y : "); scanf("%d", &y);
int sum = x + y; // xとyの和で初期化
printf("合計は%dです。\n", sum);
printf("つまり x + y = %d です。\n", sum);
return 0;
}実行例
二つの整数を入力してください。
整数x : 10
整数y : 25
合計は35です。
つまり x + y = 35 です。同じ計算結果を複数回使う場合は、
このように 変数に保存する書き方 が分かりやすくなります。
宣言と文は混在できる
このプログラムでは、
int sum = x + y;のように、
処理の途中で変数を宣言 しています。
C言語では、
{ } の中であれば、
宣言と文を混在させて記述できます。
同じ計算を何度も書く場合との比較
次のように書くことも可能ですが、
printf("合計は%dです。\n", x + y);
printf("つまり x + y = %d です。\n", x + y);同じ計算を繰り返すことになります。
- 読みにくくなる。
- 計算が複雑になると修正しづらい。
そのため、
結果は変数に保存する
という考え方が大切になります。
ここで押さえておきたいポイント
| ポイント | 内容 |
|---|---|
| puts | 文字列表示専用の関数 |
| 改行 | 自動で行われる |
| 書式指定 | できない |
| 使い分け | putsは案内表示、printfは数値表示 |
puts と printf を
目的に応じて使い分ける
ことで、読みやすいプログラムになります。
演習問題
演習 1-7
puts 関数を使って、
次の3行を表示するプログラムを作成せよ。
挑戦
成長
継続解答例
プロジェクト名:chap1-12-3 ソースファイル名:chap1-12-3.c
// puts関数で三つの言葉を表示
#include <stdio.h>
int main(void)
{
puts("挑戦");
puts("成長");
puts("継続");
return 0;
}演習 1-8
キーボードから二つの整数を読み込み、
その 積(掛け算の結果) を表示するプログラムを作成せよ。
解答例
プロジェクト名:chap1-12-4 ソースファイル名:chap1-12-4.c
Visual Studio でこのプログラムを実行するには、SDLチェック設定を変更しておく必要があります。
1.プロジェクト名を右クリックして、「プロパティ」をクリックします。
2.「C/C++」→「全般」→「SDLチェック」を「いいえ」に切り替えて「OK」をクリックします。
// 二つの整数の積を表示
#include <stdio.h>
int main(void)
{
int a, b;
puts("二つの整数を入力してください。");
printf("整数a : "); scanf("%d", &a);
printf("整数b : "); scanf("%d", &b);
printf("それらの積は%dです。\n", a * b);
return 0;
}演習 1-9
キーボードから三つの整数を読み込み、
その 和 を表示するプログラムを作成せよ。
解答例
プロジェクト名:chap1-12-5 ソースファイル名:chap1-12-5.c
Visual Studio でこのプログラムを実行するには、SDLチェック設定を変更しておく必要があります。
1.プロジェクト名を右クリックして、「プロパティ」をクリックします。
2.「C/C++」→「全般」→「SDLチェック」を「いいえ」に切り替えて「OK」をクリックします。
// 三つの整数の和を表示
#include <stdio.h>
int main(void)
{
int a, b, c;
puts("三つの整数を入力してください。");
printf("整数a : "); scanf("%d", &a);
printf("整数b : "); scanf("%d", &b);
printf("整数c : "); scanf("%d", &c);
printf("それらの和は%dです。\n", a + b + c);
return 0;
}