如何从 std::string 执行“getline”?
Posted
技术标签:
【中文标题】如何从 std::string 执行“getline”?【英文标题】:How to do "getline" from a std::string? 【发布时间】:2012-11-30 01:22:19 【问题描述】:我有问题。我加载整个文件,然后通过它获取一些信息。然而,在地图格式中,信息可能有 0 或 20 条“线”。我需要知道如何通过 std::string 获取行。有一个函数(源流、目标字符串、十进制)但我需要(源字符串、目标字符串、十进制)。在 C++ 中无法在流中搜索(仅使用许多临时字符串并多次提取和插入,尚不清楚,我不想这样做)。所以我想知道如何从 std::string 获取行。
比
【问题讨论】:
【参考方案1】:你似乎想要std::istringstream
,它在标题<sstream>
中:
std::string some_string = "...";
std::istringstream iss(some_string);
std::string line;
while (std::getline(iss, line))
// Do something with `line`
【讨论】:
谢谢。与之相关的简单问题。当流中没有找到小数时如何使getline不获取行? 因为这仍然是一个问题,因为我无法在流中搜索(这就是我想要不存在的字符串 getline 的原因)。 @user1873947 最简单的可能是检查你使用的字符串是否包含数字,然后跳过整个std::istringstream
/std::getline
位。以上是关于如何从 std::string 执行“getline”?的主要内容,如果未能解决你的问题,请参考以下文章
如何从字符串位置构造 CString/std::string
如何从 std::string 中获取 2 个字符并将其转换为 C++ 中的 int?