簡體   English   中英

來自const char *“ substring”的boost :: posix_time :: ptime

[英]boost::posix_time::ptime from const char* “substring”

編輯 :實際上,當我們在執行此操作時,我還需要對double進行相同的操作-我在const char*中間有NNNDD,其中N是整個部分,D是小數(因此在123.45中將顯示為12345的const char* )。 我知道我將擁有多少個整數,我知道有多少個小數,因此只需要從其中取一小部分即可。

我在中間的某個地方有一個const char* ,它的格式為HHMMSSMMM(小時,分鍾,秒,毫秒)。 我想用它創建一個ptime (我知道序列從哪里開始,所以我以const char*作為開頭)。 有沒有一個好的,有效的方法來做到這一點? 現在,我正在提取每個時間單位值,將它們存儲在局部變量中,並使用默認的boost::gregorian::date()time_duration hours(hh) + minutes(mm) + seconds(ss) + milliseconds(mmm)調用ptime構造函數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());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM