文字の表示関連の記事です。
書式・桁数の指定、エスケープシーケンスなども解説しています。
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のような、\【エスケープ文字】で始まる記述のことをエスケープシーケンスと言います。
これらは画面上に表示されず、特殊な動作を行います。
エスケープシーケンス | 役割 |
---|---|
¥0 | NULL文字 |
¥b | バックスペース |
¥t | Tab |
¥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