【问题标题】:How to do "getline" from a std::string?如何从 std::string 执行“getline”?
【发布时间】:2012-11-30 01:22:19
【问题描述】:

我有问题。我加载整个文件,然后通过它获取一些信息。然而,在地图格式中,信息可能有 0 或 20 条“线”。我需要知道如何通过 std::string 获取行。有一个函数(源流、目标字符串、十进制)但我需要(源字符串、目标字符串、十进制)。在 C++ 中无法在流中搜索(仅使用许多临时字符串并多次提取和插入,尚不清楚,我不想这样做)。所以我想知道如何从 std::string 获取行。

【问题讨论】:

    标签: c++ string stream getline


    【解决方案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位。
    猜你喜欢
    • 2014-04-17
    • 2019-05-06
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多