两个连续的换行符作为分隔符 - C / C ++

时间:2011-10-25 21:44:16

标签: c++ getline

我正在下面编写一个getline函数,但是我希望分隔字符是两个连续的换行符,一旦它到达空白行,该函数就会停止读取。

in.getline(temp, 127, delimiter);

是否可以使用getline执行此操作?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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