【发布时间】:2017-10-23 05:10:50
【问题描述】:
我是一个初学者,我试图限制用户只能输入一个字符,我知道使用 cin.get(char) 并且它只会从输入中读取一个字符,但我不想要另一个字符留在缓冲区中。这是我使用 EOF 的代码示例,但它似乎不起作用。
#include <iostream>
#include <sstream>
using namespace std;
string line;
char category;
int main()
{
while (getline (cin, line))
{
if (line.size() == 1)
{
stringstream str(line);
if (str >> category)
{
if (str.eof())
break;
}
}
cout << "Please enter single character only\n";
}
}
我已将它用于数字输入,并且 eof 工作正常。
但是对于char category,str.eof() 似乎是错误的。
有人可以解释吗?提前致谢。
【问题讨论】:
标签: c++ string char eof stringstream