- ベストアンサー
sprintf関数の使用法について
sprintf関数の使用法がまずいようで、実行すると Segmentation faultエラーが発生します。 コードは以下のとおりです。 main(){ char buf[100]; int h,m,s; h=12; m=30; s=47; sprintf(buf,"%s:%s:%s",h,m,s); } bufに時分秒をコロン区切りで格納したいの ですが、どうすれば良いのか教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>Segmentation faultエラーが発生します。 「整数」を「文字列」用の《指定子》で出力しようとしているからです。 ・下記URLを参照して下さい。 http://www.k-cube.co.jp/wakaba/server/format.html ------------------------------------------------------ sprintf( buf, "%02d:%02d:%02d", h, m, s ); ☆桁数を揃えるため、%02d と「ゼロ詰め」にしてみました。 上のURL「リーディングゼロの指定」参照。 0 全体桁数に満たない部分をゼロ詰め 2 全体桁数 h, m, s が 0 ~ 9 の場合、"00"~"09" となります。
その他の回答 (1)
- aigaion
- ベストアンサー率47% (287/608)
回答No.1
sprintf(buf,"%d:%d:%d",h,m,s); ですね. int型なので,%dを使います. 基本的に,printf関数と使い方は同じですよ.