2012-04-04 2 views
-2

나는 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

'펄 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를 사용하는 옵션이있다. 펄과 동일

관련 문제