C言語でprintfやscanfで改行や桁数指定などの出力表示させる方法

printf関数の解説

printfは文字列を出力させる関数です。

C言語のプログラムを実行させる型と合わせて使うと、printf(“”);の””の間に書かれた文字を出力されます。

以下のプログラムは「Hello World!!」と出力させるプログラム

C言語で「Hello World!!」と出力するプログラムの例
#include <stdio.h>
int main(void)
{
printf("Hello World!!");
return 0;
}

(“”)の中身を(“あいうえお”)にしたら「あいうえお」と出力され、(“12345”)にしたら「12345」と出力されます。

今回は、printfを使って思い通りに出力する

printfで改行して出力させる

C言語printfで改行させる

たとえば次のように、改行して出力させたいときは\nを使います。

C言語で改行して「あいうえお」「かきくけこ」と出力するプログラムの例
#include <stdio.h>
int main(void)
{
printf("あいうえお\n");
printf("かきくけこ");
return 0;
}

あいうえお
かきくけこ

「\n」を使わず、printfを2つ並べただけでは改行されないので気をつけてください。

C言語で改行せず「あいうえお」「かきくけこ」と出力するプログラムの例
#include <stdio.h>
int main(void)
{
printf("あいうえお");
printf("かきくけこ");
return 0;
}

あいうえおかきくけこ

printfで変数や計算結果を出力される

C言語で変数や計算結果を出力する例

printfで変数や計算結果を出力させるには、printf(“%〇〇”, 変数)」や「printf(“%〇〇”, 計算結果)のように記述します。

〇〇には、フォーマット指定子とよばれる表示形式を指定するアルファベットが入ります。

たとえば、int型の変数を出力したいときは「%d」と書きます。

※フォーマット指定子の一覧を後述しますね。

int型で定義したxの値(10)を出力するプログラムの例
#include <stdio.h>
int main(void)
{
int x;
x = 10;
printf("%d",x);
return 0;
}
 10
xの値が%dに代入されて、出力されます。

例:10+5の答えである15を出力させる

今度は10+5の答えの15を出力させるとします。

このときは printf(“%d”,10 + 5); のように書きます。

C言語で計算結果を整数値(今回は15)で出力するプログラムの例
#include <stdio.h>
int main(void)
{
printf("%d",10 + 5);
return 0;
}

15

「,」の後ろに書いた計算式の結果が「%d」に入って出力されます。

文字列に変数や計算結果を加えて出力させる

文字列に変数や計算結果を加えて出力させることもできます。

int型で定義したxとyの値と足した値を出力するプログラムの例
#include <stdio.h>
int main(void)
{
int x = 3;
int y = 7;
printf("xの値は%dで、yの値は%dです。\n", x,y);
printf("x+yの値は%dです。", x+y);
return 0;
}
xの値は3で、yの値は7です。
x+yの値は10です。

%dに変数や計算結果が代入されます。

%dは1度に複数使うこともできますよ!

表示形式を指定するフォーマット指定子一覧

printfをはじめfprintfやsprintfで使用する指定子をまとめました。

指定子 対応する型 出力形式 書き方の例 出力結果
%d  int, short 整数(10進数) printf(“%d”, 10 + 5); 15
%e float 実数を指数表示 printf(“%e”, 123456789); 1.234568e+08
%f float 実数 printf(“%f”, 10.0 + 5.0);
printf(“%2.1f”, 10.0 + 5.0);
15.000000
15.0
%g float 実数を最適な形式で出力  printf(“%g”, 12.345);  12.345
%s char * 文字列を出力  printf(“%s”, ”あいうえお”); あいうえお
%o int, short, unsigned int, unsigned short 整数(8進数) printf(“%o”, 10 + 5); 17
%u  unsigned int, unsigned short 符号なしの整数(10進数) printf(“%u”, 12);  12
%x int, short, unsigned int, unsigned short 整数(16進数) printf(“%x”, 10 + 5); f
%ld long 倍精度整数(10進数) printf(“%ld”, 123456789);  123456789
%lf double 倍精度実数 printf(“%lf”, 12345.6789);  12345.678900
%lo long, unsigned long 倍精度整数(8進数) printf(“%lo”, 20); 24
%lu unsigned long 符号なし倍精度整数(10進数) printf(“%u”, 12);  12
%lx long, unsigned long 倍精度整数(16進数) printf(“%lx”, 20);  14

ここで、数値の出力時に桁数を調整する方法を紹介します。

まずは何も調整しない例を見てください。

出力する桁数を調整しない

printf("%f", 12345.6789);
}

12345.678900

「f」のまえに「〇.△」と適当な数字を入れると、全体を少なくとも〇桁で表示し、小数部分を△桁で出力します。

出力する桁数を調整する

printf("%5.2f", 12345.6789);
}

12345.68

今回は指定子でよく使う物を列挙しましたが、これ以外にもあります。

詳しくはMicrosoftのページにまとまっていたので、ご覧ください。

参考 printf関数の型フィールド文字Microsoft

キーボードで打った文字列を出力させる

キーボードで入力した文字や数字を出力させる記述例

キーボードで入力したものを出力させるには、「scanf」を使います。

printfの代わりにscanfにして、(“”)の中に代入させる変数の前に「&」をつけます。

キーボードから入力したint型を出力するプログラムの例
#include <stdio.h>
int main(void)
{
int x;
scanf("%d",&x);
printf("%d",x);
return 0;
}
 ※入力結果が出力されます。
 先ほどのフォーマット指定子や変数の型をかえれば、小数や文字列などの出力もできます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です