• ベストアンサー

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に時分秒をコロン区切りで格納したいの ですが、どうすれば良いのか教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • yama5140
  • ベストアンサー率54% (136/250)
回答No.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関数と使い方は同じですよ.

関連するQ&A