Как я могу отформатировать число при выводе с использованием yaml-cpp? - PullRequest
0 голосов
/ 25 июня 2011

Мне нужно вывести мои данные в научной записи с фиксированной шириной, как в примере ниже. Есть ли способ добиться этого?

данные:
- [+ 0,000000e + 00, + 0,100000e + 00, + 2,400000e + 00, + 3,600000e + 00, + 4,800000e + 00]
- [+ 1.200000e + 00, + 1.300000e + 00, + 2.400000e + 00, + 4.800000e + 00, + 6.000000e + 00]

-SW

1 Ответ

1 голос
/ 25 июня 2011

Создайте класс-оболочку для ваших данных:

struct Fixed {
   Fixed(double v = 0): value(v) {}
   double value;

   std::string ToString() const {
      /* write something that outputs this in the format you want */
   }
};

и перегрузку operator <<:

YAML::Emitter& operator << (YAML::Emitter& out, const Fixed& f) {
   out << f.ToString();
   return out;
}

Тогда все будет работать так, как вы ожидаете:

std::vector<Fixed> data = /* ... */;
YAML::Emitter out;
out << data;  // etc
...