パソコン活用研究シリコンバレー(C、C++、の活用研究)

printfと変数の型
〜出力文字列(変換文字)

 

(準備中)


Printfは標準出力(stdout)への出力関数です。一般的に標準出力はデフォルトでディスプレイ
になっています。

Printfの出力文字列には制御文字や変換文字を含むことができます。=書式付文字列

書式のまとめ
制御文字
\n 改行
\t タブ      \b バックスペース      \"  "を表示
\\ \を表示    \r キャリlリジリターン    \0  ヌル文字

変換文字
変換文字の先頭には%を付けます。
その後ろには以下のような変換文字を付けます。
d 整数型。10進数
x 整数型。16進数
o 整数型。8進数
u 符号なし整数。10進数
c 文字
s 文字列(ただしnull=00は出力しない)
e 実数型 float型でもdouble型でもいい ±n.nnE±mm の形式で出力
f 実数型 float型でもdouble型でもいい ±n.nnの形式で出力
g 実数型 float型でもdouble型でもいい。%fと%eのうちフィールド幅の短い方の形式で自動的に表示する。

変換指示は更に細かく指示することができます。

数字で出力桁数を指定する。 %5d とすると整数型を5ケタで出力します。
-をつけると左詰めの表示をする。 %-5d 左詰で5ケタの出力
0をつけるとゼロでパディングする。  %05d 先頭を0でパディングし5ケタ出力
n.mf 実数値でフィールド幅と小数点以下のケタ数を指定 %8.2f 8桁の出力で小数点以下は2ケタ
l 倍長整数long型の表示 %9ld



#include <stdio.h>
int main(void){

int a;
a=1234;

printf("%d\n",a);
printf("%8d\n",a);
printf("%-8d\n",a);
printf("%08d\n",a);
printf("16進数 %x\n",a);
return 0;

}

実行例

c:\bcc55\Bin>printf
1234
1234
1234
00001234
16進数 4d2

printfのフォーマット文と変数の宣言の型の不一致で期待通りの出力(標準出力)が
得られない、うっかりミス

#include <stdio.h>
int main(void){
int x[5]={2,4,3,9,5};
int i,sum,heikin,iave;
float ave, fheikin;

sum=0;
for (i=0; i<5; i++) {
sum=sum+x[i];
}
ave=sum/9.0;
heikin=sum/9.0;

printf("average %f\n",ave);
printf("average %d\n", ave);
printf("heikin %d\n", heikin);
printf("heikin %f\n", heikin);
printf("cast\n");
iave=(int)ave;
fheikin=(float)heikin;
printf("average %d\n", iave);
printf("heikin %f\n", fheikin);

return 0;
}


c:\bcc55\Bin>ave
average 2.555556
average 536870912
heikin 2
heikin 0.000000
cast
average 2
heikin 2.000000

c:\bcc55\Bin>

castについて






TopPage