画面への表示

改行文字

MMGames

エスケープシーケンス、改行



改行問題


前節では、printf関数を使用して画面に文字列を表示させました。
printf関数を使えば、いくらでも画面に文字列を表示することが出来ます。

ところで、次のプログラムを実行すると、どのように表示されるでしょうか?

#include <stdio.h>

int main(void)
{
	printf("Hello");
	printf("world");
	return 0;
}
実行結果は、次のようになりました。

Helloworld
これを見ると、1つの重大なことに気づくと思います。
それは、改行されていないことです。

これでは、横にひたすら並べて表示させるしかなく、とても不便です。
最も、画面の右端まで表示すればその位置で改行されますが、
もっと自由に改行させることは出来ないのでしょうか。


エスケープシーケンス


画面に文字列を表示するのに、改行が出来ないのでは、あまりにも不便です。
そこで、C言語には、好きな位置で改行させるための機能が用意されています。

C言語のプログラムで改行を行うには、エスケープシーケンスを使います。
エスケープシーケンスとは、画面に表示出来ない制御を行うために使われる特殊文字です。
エスケープシーケンスの1つに \n があり、これが改行を表すことになっています。
エスケープシーケンス
画面に表示出来ない制御を行うために使われる特殊文字。
この \n と言う文字を表示する文字列の中に書き込んでおけば、
画面上では \n のある場所で改行されて表示されます。

なお、海外では、\(円記号)ではなく、\(バックスラッシュ)記号を使います。
これは、日本のパソコンの文字と、海外のパソコンのフォントが一部異なるためです。
しかし、どちらも内部的には全く同じ文字として扱われるので、問題は起こりません。

次のプログラムは、エスケープシーケンス \n を使って改行させる例です。

#include <stdio.h>

int main(void)
{
	printf("Hello\n");
	printf("world\n");
	return 0;
}
このプログラムの実行結果は、次の通りになります。

Hello
world
この改行文字は、好きな位置に好きな数だけ使うことが出来ます。
例えば、先ほどのプログラムを次のように書き換えても、結果は同じです。

#include <stdio.h>

int main(void)
{
	printf("Hello\nworld\n");
	return 0;
}
少しわかりにくいかもしれませんが、中央に \n があります。

多くの場合は、1行表示するたびに改行した方が見やすくなるので、
今後は、特に理由がない限り、1行の最後で必ず改行を行います。

他にも様々なエスケープシーケンスがありますが、使われる物は限られています。
改行文字以外では、頭揃えのためにタブを挿入する \t がよく使われます。
次のプログラムは、\tで頭揃えを行う例です。

#include <stdio.h>

int main(void)
{
	printf("Windows\tMicrosoft\n");
	printf("MacOS\tApple\n");
	return 0;
}
このプログラムの実行結果は、次の通りになります。

Windows Microsoft
MacOS  Apple
2番目の文字が頭揃えされて表示されています。

サイト目次


第0部:プログラム概要編

  1. プログラムとは何か?

2章:プログラムの書き方

  1. 書き方のルール
  2. 書き方の慣習
  3. 練習問題2

3章:画面への表示

  1. 文字列の表示
  2. 改行文字
  3. 練習問題3

6章:キーボードからの入力

  1. 入力用の関数
  2. 入力の恐怖
  3. 練習問題6

9章:回数が決まっている繰り返し

  1. 繰り返しを行う文
  2. ループ動作の仕組み
  3. 練習問題9

10章:回数がわからない繰り返し

  1. 回数不明ループ
  2. 入力チェック
  3. 練習問題10

13章:複数の変数を一括して扱う

  1. 複数の変数をまとめて扱う
  2. 配列の使い方
  3. 練習問題13

20章:複数のソースファイル

  1. 最小限の分割
  2. 分割の定石
  3. 練習問題20