PR

【C・C++】文字の表示【書式・桁数・エスケープシーケンス】

アイキャッチ C++
この記事は約6分で読めます。

文字の表示関連の記事です。
書式・桁数の指定、エスケープシーケンスなども解説しています。

のんびり丸

WEBアプリの開発等をしています。
日々の学習の備忘録として運営していこうと思います。

のんびり丸をフォローする

printf()関数

printf("〇〇〇");

文字を表示したい場合には、printf()を使います。
〇〇〇の箇所に文字を入力すると、コンソールに文字を表示することが出来ます。

コーディング例①

#include <stdio.h> // printf()を使用するために必要

int main()
{
	printf("今日からC++の勉強を始めます。\n");

	return 0;
}

\nに関しては、このページの【エスケープシーケンス】の項目で説明しています。

<stdio.h>は、【スタンダード アイオー ドットエイチ】 と読みます。

出力
今日からC++の勉強を始めます。

void main()は、非推奨らしい

#include <stdio.h> // printf()を使用するために必要

void main()
{
	printf("今日からC++の勉強を始めます。\n");
}

わざわざ【int型】にして戻り値を0とするぐらいなら、【void型】を使えば良いじゃんと思ったのですが、これは一般的に非推奨の書き方らしいです。

これには様々な理由があるようですが、簡単に説明すると、エラーの原因になりかねないとのことでした。
なので、私は大人しく【int型】を利用していきます。

書式指定

printf()には、書式を指定してデータを表示する方法があります。
書式指定には、下記のような種類があります。

書式指定意味データの例
%d整数(小数点なし)を10進数で表示する1,2,3,-1,-2,-3
%f実数(小数点あり)を表示する0.1,1.0,5.5
%c文字('で囲まれた半角文字1つ)を表示する'a','A'
%s文字列("で囲まれた文字)を表示する"A","ABC","あいうえお"
%x整数を(小数点なし)を16進数で表示する0,1,2,A,B,C

書式指定のアルファベットの意味は、以下の単語が元になっています。

  • d:decimal【10進数】
  • f:float【浮動小数点】
  • c:charactor【文字】
  • s:string【文字列】

コーディング例①

#include <stdio.h> // printf()を使用するために必要

int main()
{
	printf("5\n");
	printf("%d\n", 5);

	return 0;
}
出力
5
5

コーディング例②

#include <stdio.h> // printf()を使用するために必要

int main()
{
	printf("%d-%dは、%dです。\n", 5, 3, 5-3);

	return 0;
}
出力
5-3は、2です。

コーディング例③

#include <stdio.h> // printf()を使用するために必要

int main()
{
	printf("%s %c %f\n", "6÷5", '=', 1.2);

	return 0;
}
出力
6÷5 = 1.200000

コーディング例④

#include <stdio.h> // printf()を使用するために必要

int main()
{
	int a = 12, b = 0xF;
	printf("10進数の%dは16進数では%x\n", a, a);
	printf("10進数の%dは16進数では%X\n", a, a); // 大文字表記
	printf("16進数の%xは10進数では%d\n", b, b);

	return 0;
}
出力
10進数の12は16進数ではc
10進数の12は16進数ではC
16進数のfは10進数では15

数字の前に【0x】を付けると、16進数の表記となります。
【%x】を【%X】にすると、大文字表記となります。

桁数の指定

書式指定をする際の【%d】の文字間に数値を入力することで、表示する桁数の指定をすることが可能です。

  • %4d:空白を含めて4文字表示
  • %04d:0を使って4文字表示

コーディング例①

#include <stdio.h> // printf()を使用するために必要

int main()
{
	printf("%d\n", 12);
	printf("%4d\n", 12);
	printf("%04d\n", 12);
	printf("%3d\n", 1234);
	printf("%03d\n", 1234);

	return 0;
}
出力
12
  12
0012
1234
1234

コーディング例②

【%f】の場合は、小数点の桁数も指定することが出来ます。

  • %6.1f:全体を6桁表示かつ、小数点以下を1桁表示

※小数点も1文字扱いされます。

#include <stdio.h> // printf()を使用するために必要

int main()
{
	printf("%f\n", 123.4);
	printf("%6f\n", 123.4);
	printf("%6.1f\n", 123.4);
	printf("%6.2f\n", 123.4);

	return 0;
}
出力
123.400000
123.400000
 123.4
123.40

コーディング例③

文字列も数値と同様に、桁数を指定することが出来ます。

#include <stdio.h> // printf()を使用するために必要

int main()
{
	char a[6] = "Hello";
	printf("%s\n", a);
	printf("%6s\n", a);

	return 0;
}
出力
Hello
 Hello

エスケープシーケンス

\nのような、\【エスケープ文字】で始まる記述のことをエスケープシーケンスと言います。
これらは画面上に表示されず、特殊な動作を行います。

エスケープシーケンス役割
¥0NULL文字
¥bバックスペース
¥tTab
¥n改行
¥r復帰

クォーテーション【'】【"】やエスケープ文字【\】自体を表示したい場合は、以下のように記述します。

記述方法表示
¥¥¥
¥''
¥""

std::cout

printf()以外にも、標準出力ストリーム【std::cout】を利用することで文字を表示することが出来ます。
改行する場合には、【\n】や【std::endl】を使用します。

ちなみに、【cout】は【シーアウト】と読みます。

std::cout << "○○○";

コーディング例①

#include <iostream> // std::coutを使用するために必要

int main()
{
	std::cout << "社会人にも夏休みをください。" << std::endl;

	return 0;
}
出力
社会人にも夏休みをください。

応用

この記事の内容を使った応用です。

コーディング例①

#include <stdio.h> // printf()を使用するために必要

int main()
{
	printf("   %5s %5s\n", "商品A", "商品B");
	printf("数量 %5d %5d\n", 3, 5);
	printf("単価 %5d %5d\n", 100, 200);
	printf("金額 %5d %5d\n", 3*100, 5*200);

	return 0;
}
出力
   商品A 商品B
数量     3     5
単価   100   200
金額   300  1000
タイトルとURLをコピーしました