関連記事
開発環境
- Windows11
- Visual Studio 2022
printf関数
printf
(プリントエフ)関数は書式文字列の内容を画面に表示する関数です。まずは簡単な使い方から紹介します。
#include <stdio.h>
int main( void )
{
printf( "Hello" );
return 0;
}
Hello
printf関数には画面に表示したい文字列を実引数として渡します。この文字列は、必ずダブルクォート"
で囲んでください。
画面に表示させる文字列として全角文字の使用も可能です。数字や記号も使えますが、\は特殊な記号なのでそのままでは使用できません。これは後ほど解説します。
#include <stdio.h>
int main( void )
{
printf( "こんにちは!Hello!!12345" );
return 0;
}
こんにちは!Hello!!12345
改行
printf関数はプログラム中に何度も呼び出すことができます。ただし、改行は行われません。
#include <stdio.h>
int main( void )
{
printf( "Hello" );
printf( "こんにちは" );
return 0;
}
Helloこんにちは
改行を行うには エスケープシーケンス(拡張表記) を使います。
エスケープシーケンス
エスケープシーケンスとは特別な動きをする文字のことで、\
記号と1文字の組み合わせで表現します。
環境によってはバックスラッシュが半角の円記号(¥)として表示される場合がありますが、機能的には同じです。
例えば改行を表す拡張表記は\n
です。これをprintf関数の文字列中に記述すると改行が行われます。
#include <stdio.h>
int main( void )
{
// Hello の後に改行されて こんにちは と表示される
printf( "Hello\nこんにちは" );
return 0;
}
Hello
こんにちは
また、拡張表記は文字列中に何度でも使用することができます。
#include <stdio.h>
int main( void )
{
printf( "こ\nん\nに\nち\nは" );
return 0;
}
こ
ん
に
ち
は
\の表示
バックスラッシュ\
は、エスケープシーケンスに使われる特殊な記号であるため、そのままプログラムに記述しても文字として画面に表示されません。バックスラッシュを文字として表示するには、\\
というエスケープシーケンスを使う必要があります。
#include <stdio.h>
int main( void )
{
printf( "バックスラッシュの記号は\\です。" );
return 0;
}
バックスラッシュの記号は\です。
書式化
printf関数に渡す文字列は書いた通りに表示されます。そのため、計算式などを書いても計算は行われずそのまま表示されます。
#include <stdio.h>
int main( void )
{
printf( "123と456の和は123 + 456です。" );
return 0;
}
123と456の和は123 + 456です。
プログラミングでは単に文字列を表示するだけでなく、計算結果を表示することが多々あります。これを実現するのが 書式指定子(フォーマット指定子) で、文字列中に%と1文字の組み合わせで表現します。例えば%dは10進数の整数値で表示するという意味になります。
#include <stdio.h>
int main( void )
{
printf( "123と456の和は%dです。", 123 + 456 );
return 0;
}
123と456の和は579です。
書式指定子を使うときはprintf関数の2つ目以降の実引数に表示したい値を指定してください。値は数値だけでなく計算式を書くこともできます。
2つ目以降の実引数に計算式を書けば、その計算結果が%dのところに表示されます。
書式指定子は文字列中に何度も使うことができます。書式指定子の数だけ実引数を追加してください。
#include <stdio.h>
int main( void )
{
printf( "%dと%dの和は%dです。", 123, 456, 123 + 456 );
return 0;
}