РЕДАКТИРОВАТЬ: На самом деле, пока мы на этом, мне нужно сделать то же самое для 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)
… но это кажется неуклюжим, окольным. Разве я не могу просто передать временную строку и не беспокоиться о дате?
Для пар, вставьте. и затем прочитайте это в двойном.
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());