printとfsprintfの違い

解決


みあき  2006-05-27 12:12:24  No: 61967  IP: 192.*.*.*

こんにちは。また質問させていただきます。
printf("%.3f",123.666)とするとコンパイルできるのですが、
sprintf("%.3f",123.666)とすると、
'sprintf' : 2 番目の引数を 'double' から 'const char *' に変換できませんとエラーがでます。この違いは何なんでしょうか。
初歩的な質問ばかりで申し訳ありませんが、教えてください。

編集 削除
みあき  2006-05-27 12:30:35  No: 61968  IP: 192.*.*.*

すいません。質問に付け加えさせていただきます。
printfだとコンパイルできるのですが、printf("%.3f",123.666)の出力結果が7になってしまします。
printf("%.2f",123.666)にしたら、123.66が出力されるものと思っていたのですが、違うのでしょうか。

編集 削除
επιστημη  2006-05-27 14:06:58  No: 61969  IP: 192.*.*.*

> 'sprintf' : 2 番目の引数を 'double' から 'const char *' に変換できませんとエラーがでます。この違いは何なんでしょうか。

質問の前にマニュアルを読んでください。

編集 削除
επιστημη  2006-05-27 14:25:47  No: 61970  IP: 192.*.*.*

> printfだとコンパイルできるのですが、printf("%.3f",123.666)の出力結果が7になってしまします。

同じことやってみましたが、画面にはちゃんと 123.666 と出力されました。

編集 削除
みあき  2006-05-27 19:53:02  No: 61971  IP: 192.*.*.*

やはり、私がデバッグすると上記エラー(下記項目)が発生しています。。
どうも、私のデバッグ結果は桁数が出ているようです。
もう少し、調べてみます。。不思議です。

整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。

編集 削除
επιστημη  2006-05-27 21:32:25  No: 61972  IP: 192.*.*.*

printf() は文字列を標準出力に出力し、その文字数を返しますけど。

> 整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。

sprintf("%.3f", 123.666); だとそのエラーでしょうね。
マニュアルを読んでください。

編集 削除
Blue  2006-05-27 21:58:01  No: 61973  IP: 192.*.*.*

printf と sprintf は名前こそ似ているが、やっていることは違いますよ。

マニュアルを読んでというアドバイスを無視しているようなので、
こちらのリンクを参考にしてみてください。
http://www9.plala.or.jp/sgwr-t/lib/sprintf.html
# また無視されるかも。。。

編集 削除
シャノン  2006-05-28 23:50:08  No: 61974  IP: 192.*.*.*

マニュアル車とオートマ車は見た目が似ているのに、マニュアル車をオートマの免許で運転できません。どうしてですか?  というような感じの質問ですね。
そもそも、似て非なるものなのですから、それぞれの使い方を調べなければなりません。

編集 削除
 2006-05-29 06:57:46  No: 61975  IP: 192.*.*.*

○○の考え休むに似たり
理解してないのに考えたって時間の無駄です。
とっととマニュアル読みなさい。

編集 削除
みあき  2006-05-30 10:11:24  No: 61976  IP: 192.*.*.*

ケチケチしてないで具体的な書き方さっさと教えろよ

編集 削除
kure  2006-05-30 10:34:37  No: 61977  IP: 192.*.*.*

> ケチケチしてないで

誰もケチケチしてません。
きちっと「マニュアルを読んで」とアドバイスしています。

> 具体的な書き方

> 初歩的な質問ばかりで申し訳ありませんが、教えてください。(2006/05/27(土) 12:12:24)

この質問のどこに具体性があるというのでしょうか?
何を教えてくださいなのですか?
具体性のある質問をしなければ具体性のある回答が付くわけがないのは自明です。

> さっさと教えろよ

さっさと知りたいのであればマニュアルを見てください。
掲示板に投稿した時点で即答が得られる可能性を捨てましょう。

MSDNオンライン

printfのリファレンス

http://msdn.microsoft.com/library/ja/vclib/html/_crt_printf.2c_.wprintf.asp?frame=true

sprintfのリファレンス
http://msdn.microsoft.com/library/ja/vclib/html/_crt_sprintf.2c_.swprintf.asp?frame=true

編集 削除
kure  2006-05-30 10:37:56  No: 61978  IP: 192.*.*.*

どうも他のスレを見ていると、他人へのなりすましが行われているようですね。

"2006/05/30(火) 10:11:24 <221.244.216.106>"のみあきさんがご本人で
ないようであれば"2006/05/30(火) 10:34:37 <202.32.73.43>"の
私の発言はスルーしてください。

で、アドバイスとしては「マニュアルを見ましょう」です。

編集 削除
みあき  2006-05-31 20:49:12  No: 61979  IP: 192.*.*.*

申し訳ありませんでした。出張中でしたため、皆さんのご指摘に、反応できませんでした。確かに、もっと調べて具体的な質問にさせていただくべきでした。みなさんいろいろとありがとうございました。

追伸:
>ケチケチしてないで具体的な書き方さっさと教えろよ

は私ではありません。(信じていただけないかもしれませんが。。。。。)

編集 削除
kure  2006-05-31 21:45:56  No: 61980  IP: 192.*.*.*

> は私ではありません。
IPからは別ホストであることが一目瞭然なので、
そんなに心配しないでもいいんじゃないですかね。
まぁ100%とは言い切れないですけど、わざわざホストを変えてまで
スパムのような書き込みするとは思えないですし。

で、解決したのであれば解決チェックつけた方がいいですよ〜。

編集 削除
みあき  2006-05-31 22:50:57  No: 61981  IP: 192.*.*.*

ありがとうございました。もっと勉強します。

編集 削除