我想检查一个空行作为执行特定操作的输入。我尝试使用 cin.peek() 并检查它是否等于 '\n',但这没有意义。
一个
b
C
空行(在这里,我想执行我的操作)
一个
我试过这段代码:
char a,b,c;
cin>>a;
cin>>b;
cin>>c;
if(cin.peek()=='\n') {
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
}
我想检查一个空行作为执行特定操作的输入。我尝试使用 cin.peek() 并检查它是否等于 '\n',但这没有意义。
一个
b
C
空行(在这里,我想执行我的操作)
一个
我试过这段代码:
char a,b,c;
cin>>a;
cin>>b;
cin>>c;
if(cin.peek()=='\n') {
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
}
使用getline
,然后处理字符串。如果用户输入了空行,则字符串将为空。如果他们没有,您可以对字符串进行进一步处理。您甚至可以将其放入 anistringstream
并将其视为来自cin
.
这是一个例子:
std::queue<char> data_q;
while (true)
{
std::string line;
std::getline(std::cin, line);
if (line.empty()) // line is empty, empty the queue to the console
{
while (!data_q.empty())
{
std::cout << data_q.front() << std::endl;
data_q.pop();
}
}
// push the characters into the queue
std::istringstream iss(line);
char ch;
while (iss >> ch)
data_q.push(ch);
}