【问题标题】:two consecutive newline characters as a delimiter - C/C++两个连续的换行符作为分隔符 - C/C++
【发布时间】:2011-12-15 07:49:19
【问题描述】:

我正在下面编写一个 getline 函数,但我希望分隔符是两个连续的换行符,这样函数在到达 blank 行时停止读取。

in.getline(temp, 127, delimiter);

getline 可以做到这一点吗?

【问题讨论】:

    标签: c++ getline


    【解决方案1】:

    不,但是一个 simple(不像我一开始想的那么简单)循环就可以了。

    std::string s, temp;
    while (std::getline(in, temp, delimiter) && !temp.empty())
        s += temp, s += delimiter;
    if (!s.empty())
        s.resize(s.size() - 1) // or s.pop_back() if C++11
    

    【讨论】:

    • Don;y 你想在 s 中添加换行符吗? s += temp + '\n';
    【解决方案2】:

    istream::getline 的分隔符必须是单个字符。但是,您始终可以自己缓冲结果,检查下一个字符 (peek) 以查看其是否为换行符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 2017-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多