boost :: posix_time :: ptime от const char * & quot; substring & quot;

РЕДАКТИРОВАТЬ: На самом деле, пока мы на этом, мне нужно сделать то же самое для double а также — у меня есть что-то NNNDD в середине const char*где N — это целая часть, а D — десятичная дробь (поэтому в 123.45 будет выглядеть как const char* до 12345). Я знаю, сколько у меня будет целых чисел, и я знаю, сколько десятичных знаков, так что это просто вопрос получения дроби из них.

у меня есть const char* где-то посередине находится временная последовательность в формате ЧЧММССМММ (часы, минуты, секунды, миллисекунды). Я хотел бы создать ptime из этого (я знаю, где начинается последовательность, поэтому у меня есть const char* к его началу). Есть ли хороший, эффективный способ сделать это? Прямо сейчас я извлекаю каждое значение единицы времени, сохраняю их в локальных переменных и вызываю ptime конструктор по умолчанию boost::gregorian::date() и time_duration из hours(hh) + minutes(mm) + seconds(ss) + milliseconds(mmm)… но это кажется неуклюжим, окольным. Разве я не могу просто передать временную строку и не беспокоиться о дате?

0

Решение

Для пар, вставьте. и затем прочитайте это в двойном.

 const char * pDoubleString = ...;
const long DoubleStringLength = ...;
const long DoubleWholeCharCount = ...;

std::string DoubleAsString = std::string(pDoubleString, DoubleStringLength);
DoubleAsString.Insert(DoubleWholeCharCount, ".");
double DoubleValue = std::atof(DoubleAsString.c_str());
0

Другие решения


По вопросам рекламы [email protected]