dポイントプレゼントキャンペーン実施中!

初歩的な質問で失礼します。
VC6からVS2005に変換はできましたが、ワーニングでsprintfは古いと警告がです。
VS2005風な書き換えはどうするのでしょうか。

A 回答 (7件)

>string.Formatメソッドを利用します。


これは、C++/CLI限定の使い方ですね。
質問者さんにはそぐわない方法かも。

セキュアなsprintf_s()をお使いください。
私もVS2005ですが、MSDNライブラリ(ヘルプ)見れば書いてありますよ。
ヘルプに無ければMSDNサイトの検索をしましょう。
初心者脱出には、MSDNサイトを使いこなす事!
http://msdn.microsoft.com/ja-jp/default.aspx
    • good
    • 0
この回答へのお礼

zwiさん

ありがとうございました。
なかなかMSDNはハードルが高いです。
勉強していきます。

お礼日時:2009/03/09 12:42

自分はStrSafe.h使ってます


#if _MSC_VERでsprintfとsprintf_s使い分ける必要もなく警告もなくセキュアです

参考URL:http://msdn.microsoft.com/en-us/library/ms647466 …
    • good
    • 0
この回答へのお礼

dummさん

ありがとうございました。
やはり汎用性がいいですね。
さっそく変更してみます。

お礼日時:2009/03/09 12:38

C++の場合、正攻法であればstd::ostringstreamを使うことになるのかと思います。


マイクロソフトとしてはsprintf_sを使わせたいのでしょうが、sprintf_sを使ったからといいって、それだけでセキュリティ上の問題がすべて解決するわけではないので要注意です。
    • good
    • 0
この回答へのお礼

jactaさん

ありがとうございます。
基本的な質問で失礼しました。
初心者には、これでも良いがこれでも良いというのが一番理解しにくいです。

お礼日時:2009/03/09 12:40

#3 のようにして無視するか, _s 付きの sprintf_s を使ってやってください. 今の C ならそのために snprintf があるんだけど, VS2005 だと _snprintf でも「古い」とか言われかねないのか....


ちなみに _snprintf_s って関数もあるんだけど, この関数の引数はおかしい気がする. 「出力バッファの大きさ」と「出力する文字数」の 2つを与えるんだけど, この 2つが無関係にできてどこがうれしいのか想像ができない.
    • good
    • 0

私は


_CRT_SECURE_NO_DEPRECATE
で無視しています
    • good
    • 0

「visual studio sprintf 古い」


あたりのキーワードでググってみると、
役に立つサイトが見つかるかもしれません。
    • good
    • 0

string.Formatメソッドを利用します。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!