2016-07-15 19 views
1

VS2010を使用してC++にアプリケーションを開発しています。私はフォーマット"%d-%m-%y %n %H:%M:%S"strfimeを使ってみましたが、実行時にエラーDebug assert Failed: “Invalid format directive”が出てきました。問題を解決しようとすると、%nC++11の一部であり、VS2010でサポートされていないことがわかりました。だから私の質問です:私は2つの異なる行に日付と時間を持つことができる他の方法はありますか? VSの他のバージョンを使用するオプションはありません。C++:%nをstrftimeで使用する

EDIT:

実は私は、グラフを作成するためのライブラリwxfreechartを使用しています。日付と時刻がX軸に表示されます。 wxfreechartで私はを受け取り、date format in strftime stylehttp://wxcode.sourceforge.net/docs/freechart/classDateAxis.html)を受け入れています。次のように私のコードは実際には次のとおりです。

bottomAxis->SetDateFormat(wxT("%d-%m-%y %n %H:%M:%S")); 

\nの代わり%nは、ここでは何も与えません。

ご迷惑をかけて申し訳ございませんがstrftimeです。

+0

新しい行は 'wxfreechart'でサポートされていますか?おそらく、 '\ n'と' \ t'を含むスペースは ''(単一スペース)で置き換えられます。つまり、strftimeスタイルの使用法は必ずしも 'strftime'を呼び出すわけではなく、C++標準を必ずしもサポートしていません。 – VolAnd

+0

@ VolAnd:wxfreechartで\ tと\ nを使用しているときにエラーが表示されませんでしたが、改行やタブスペースも提供していません – Jackzz

+1

問題は 'DateAxis'と' SetDateFormat ' – VolAnd

答えて

3

"%d-%m-%y \n %H:%M:%S"という形式の文字列を印刷してください。"%n""\n"に置き換えてください。そのようにして、古いC++標準、つまりVS2010で動作するはずです。

それ以外の場合は、新しいバージョンのVisual Studioにアップグレードすることを検討できます。ここで

は良い参考です:http://www.cplusplus.com/reference/ctime/strftime/

+0

私は試してみましたが動作しません。他のバージョンを使用するはずがありません – Jackzz

+0

VSバージョンをアップグレードすると、コンパイラのバージョンは本当に政治的に私は何年もGCC 3.3を捨てようとしてきましたが、私たちは、この古いプロジェクトを使って、後続のビルドシステムで使用されていたモデルを形成していますが、まだまだ開発とサポートが活発で、 NI広範なロードマップなしで動作するシステムを変更する。 – user4581301

+0

@Jackzz「私はそれを試みましたが、うまくいきません」 - 何を試しましたか? – VolAnd

0

問題はなく、wxfreechartの私の使用方法と、strftimeではなかったです。私はverticallabeltextfalseに設定しなければならなかったので、のように\nを使うことができました。

bottomAxis->SetVerticalLabelText(false); 
bottomAxis->SetDateFormat(wxT("%d-%m-%y\n%H:%M:%S")); 
関連する問題