我正在读取标准输入,并且希望在遇到以“a”开头的行时停止跳过所有内容:
while(cin.peek() != 'a') {
cin.get();
}
唯一的问题是,如果我在行的中间有一个 a,这也会触发。
我会尝试 cin.getline();
但我不知道该行的最大长度。有没有办法直接转到下一行?
最佳答案
你可以自己做,像这样:
#include <iostream>
#include <string>
int main() {
bool skip = true;
for(std::string line; std::getline(std::cin, line);)
{
if(line.size() && line[0] == 'a')
skip = false;
if(!skip)
std::cout << line<< std::endl;
}
return 0;
}
这将忽略读取的每一行,直到遇到以 a
字符开头的非空行。之后,它将停止跳过读取的行,并打印每一行。
关于c++ - 如何跳过一行标准输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53693218/