ここから本文です

0埋め処理(C言語)

clo********さん

2009/6/323:54:17

0埋め処理(C言語)

ランダムな5桁の数があり、
それを表示時に頭を0埋めするソースが思うようにかけません。

1→0001
134→00134
13560→13560

といった様です。


よろしければお知恵をかしてください。
よろしくお願いします。

補足言葉足らずでした・・・

一応形式としましては、テキストファイルに書き出したいと思っています。

閲覧数:
32,787
回答数:
2

違反報告

ベストアンサーに選ばれた回答

rs_********さん

編集あり2009/6/402:41:01

シチュエーションによってやり方が変わるので
とりあえずよくありそうな2パターンを。


【ファイルに直接書き出す場合】
printf()のファイル出力版「fprintf()」を利用。

----------
#include <stdio.h> // for fprintf(), FILE, fopen(), fclose()

FILE* fp;
int rand_number = ~; // ランダムな5桁の数字
char file_name[32] = ~; // 書き出したいファイルの名前

// ファイルを開く
fp = fopen( file_name, "w" ); // 追記したいなら"w"ではなくて"a"を

// fpで指定されるファイルに5桁の数字を書き出し(足りない桁は0で埋める)
fprintf( fp, "%05d\n", rand_number ); // 一行に5桁として改行してます

fclose( fp ); // ファイルを閉じる
----------


【一旦文字列に格納してから書き出す場合】
printf()の文字列出力版「sprintf()」を利用。

----------
#include <stdio.h> // for sprintf()

int rand_number = ~; // ランダムな5桁の数字
char five_digits[16]; // 結果を格納する文字列用変数

// five_digits[]に5桁の数字を格納(足りない桁は0で埋める)
sprintf( five_digits, "%05d", rand_number );

// あとはfive_digitsの内容をファイルに書き込み!
----------

fprintf()、sprintf()ともに第二引数以降はprintf()と同じです。
ファイル出力のことなら一度stdio.hの関数を一通り調べてみると良いですよ。

質問した人からのコメント

2009/6/4 23:17:43

ありがとうございました。
%05dなんてあったんですね。
初歩的なことかもしれませんが、初めてしりました。

ベストアンサー以外の回答

1〜1件/1件中

gle********さん

2009/6/400:02:30

printf("%05d", 1);
printf("%05d", 134);
printf("%05d", 13560);

とかではなく?

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる