我正在下面编写一个getline函数,但是我希望分隔字符是两个连续的换行符,一旦它到达空白行,该函数就会停止读取。
in.getline(temp, 127, delimiter);
是否可以使用getline执行此操作?
答案 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
)以查看它是否为换行符。