Chapter2 @ C言語目録

変数の値の表示

printf("文字列");
とすれば、ダブルクォーテーションでくくられた文字列が表示されました。この文字列中に「%卍」(卍はd, f, cなど)が存在すると、その部分に、ダブルクォーテーションの後ろにる文字や数値を埋め込むことができます。整数とは%d、浮動小数の場合は%f、文字の場合は%cを指定します。

ソースコード

源文件
  1|/* format01.c */
  2|
  3|#include <stdio.h>
  4|
  5|int main(void)
  6|{
  7|  int a, b, c;
  8|
  9|  a = 10;
 10|  b = 15;
 11|
 12|  c = a + b;
 13|
 14|  printf("%d + %d = %d\n", a, b, c);
 15|
 16|  return 0;                                                                 
 17|}

実行結果

10 + 15 = 25

これはつぎのように書き換えることも可能です。
源文件
  1|/* format02.c */
  2|
  3|#include <stdio.h>
  4|
  5|int main(void)
  6|{
  7|  int a,b;
  8|
  9|  a = 10;
 10|  b = 15;
 11|
 12|  printf("%d + %d = %d\n", a, b, a + b);
 13|
 14|  return 0;                                                                 
 15|}

ソースコード

源文件
  1|/* format03.c */
  2|
  3|#include <stdio.h>
  4|
  5|int main(void)
  6|{
  7|  double a = 0.5, b = 10.5;
  8|  int c = 215, d;
  9|  char e = 'A';
 10|
 11|  printf("%f + %f = %f\n", a, b, a + b);
 12|  d = c + 11;
 13|  printf("cの値は%dでこれに11を加えると%dとなります\n", c, d);
 14|  printf("eには\"%c\"が代入されています\n", e);
 15|
 16|  return 0;                                                                 
 17|}

実行結果

0.500000 + 10.500000 = 11.000000
cの値は215でこれに11を加えると226となります
eには"A"が代入されています

%fとか%dなどは書式指定フィールドと呼ばれています。書式指定フィールドは次のように書き表すことになっています。

%[flags][width].[precision]{typeのプレフィックス}type

%とtype以外は全部省略可能です。%dとか%fとかいうのは目一杯省略しているのです。

書式指定フィールド

ールド 指定地 意味
flags - 変数され引数を左詰めにします。指定しないと右詰めになります。
+ 出力する値が符号付きの場合「+」または「-」の符号をつけます。指定しないとマイナスの時のみ「-」がつきます。
0 最小幅になるまで0を追加します。出力値がマイナスと0の場合は0は追加されません。省略すると0は追加されません。
width 数値 文字幅を指定します。
precision 数値 精度を指定します。つまり小数点以下の桁数を指定します。
typteのプレフィックス h short int に適応させます。
l long 修飾です。
L long double 修飾です。
type d, i 10進(Decimal)整数を指定します。
o 符号なし8進数(Octal)を指定します
u 符号あし(unsigned)10進整数を指定します。
x 符号なし16進(heXadecimal)整数で、a, b, c, d, e, fを使います。
X 符号なし16進(heXadecimal)整数で、A, B, C, D, E, Fを使います。
f 浮動小数点(Floating-point)を指定します。
e, E 指数(Exponent)変換を指定します。+/- 卍.卍卍e卍卍または+/- 卍.卍卍E卍卍。
g, G e, fの書式のうち指定された制度を表現できる短い方の書式です。
c 文字(Character)変換を指定します。
s 文字列(String)変換お指定します。
p ポインタ(Pointer)変換を指定します。

書式指定フィールド、表示書式を指定できる。

ソースコード

源文件
  1|/* format04.c */
  2|
  3|#include <stdio.h>
  4|
  5|int main(void)
  6|{
  7|  double pi = 3.14159265358979;
  8|  int mon = 2;
  9|  float flt = 1.2f;
 10|
 11|  printf("%5.2f\n",flt);
 12|  printf("%-5.2f\n",flt);
 13|  printf("%05.2f\n",flt);
 14|  printf("%+08.2f\n",flt);
 15|  printf("%-8.2f\n",flt);                                                   
 16|
 17|  printf("%d\n",mon = 3);
 18|
 19|  printf("%e\n",pi);
 20|
 21|  printf("%08.2f\n",pi);
 22|  printf("%05d\n",mon);
 23|
 24|  printf("円周率は%fです\n",pi);
 25|  printf("円周率は%lfです\n",pi);
 26|  printf("もう少し詳しい値は%10.8lfです\n",pi);
 27|  printf("もう少し詳しい値は%15.13lfです\n",pi);
 28|  printf("もう少し詳しい値は%20.18fです\n",pi);
 29|  printf("円周率は%010.2f\n",pi);
 30|  printf("円周率は%-10.2f\n",pi);
 31|  printf("円周率は%10.2f\n",pi);
 32|  return 0;
 33|}   

実行結果

 1.20
1.20 
01.20
+0001.20
1.20    
3
3.141593e+00
00003.14
00003
円周率は3.141593です
円周率は3.141593です
もう少し詳しい値は3.14159265です
もう少し詳しい値は3.1415926535898です
もう少し詳しい値は3.141592653589790007です
円周率は0000003.14
円周率は3.14      
円周率は      3.14

Chapter2 @ C言語目録 @ HomeWork List @ 昭亮's Homepage