【发布时间】:2015-03-07 23:12:06
【问题描述】:
给定一个十进制值(秒及其小数)作为字符串,例如
std::string span = "ssss.nnnn" // ssss is value in seconds, nnnn is fractional seconds
将其转换为 timeval 结构(val.ts_sec 和 val.ts_usec)或 timespec 结构(tv_sec 和 tv_nsec)的最佳方法是什么。
大多数答案都讨论了转换值或者不是 C++。有些答案变得非常复杂,或者设置的类对于这种用法来说实在是太多了。
如果两个值用空格分隔,显然可以使用 sscanf 或 istringstream。但是,如果它们用“。”分隔,有没有一种简单的方法可以做到这一点。无需在字符缓冲区中循环搜索“。”
【问题讨论】:
-
find_first_of 可能吗?
-
可能重复:Splitting string in C++,更具体地说是第二个答案。
-
getline采用可选分隔符。 -
你如何决定是 123.5678 还是 123.005678?
-
@Wintermute 啊,好点子。