2012-04-04 7 views
-2

私は、次のPerlコードC++でsprintfを使用するこのPerlコードのC++に相当するものは何ですか?

if($file =~ /^([^_]+)_([^_]+)_MA_(\d{4})(\d\d)(\d\d)_(\d\d)(\d\d)(\d\d)\.MA$/) { 
    my ($radar, $beam, $year, $month, $day, $hour, $min, $sec) = 
     ($1, $2, $3, $4, $5, $6, $7, $8); 
    my $file_ts = sprintf("%04d-%02d-%02d %02d:%02d:%02d", 
     $year, $month, $day, $hour, $min, $sec); 

    # ... 
} 

の機能を模倣行う必要があります。私はそれにどの機能を使用しますか?

http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/

またはあなたがより多くのC++として、stringstreamを使用することができます - っぽい代替:

+2

'Perlでsprintf'はCコールの実装です。私はあなたがC++でもそれをやることができると確信しています。 – Cfreak

+0

'sprintf'呼び出しを簡単に模倣しています。 'if'文を模倣するのはもっと難しいです。 –

答えて

4

char file_ts[1000]; 

snprintf(file_ts, "%04d-%02d-%02d %02d:%02d:%02d", year, month, day, hour, min, sec); 

9

まあ、いつもsprintfを使用するオプションがあります。 Perlで同じ

関連する問題