-2

我需要模仿以下 Perl 代码的功能

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);

  # ...
}

在 C++ 中。我使用哪个功能?

4

2 回答 2

9

好吧,总是可以选择使用sprintf

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

或者您可以使用stringstream, 作为更 C++ 的替代方案。

于 2012-04-04T13:40:10.700 回答
4

与 Perl 相同:

char file_ts[1000];

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

   

于 2012-04-04T13:40:26.300 回答