我想验证char是否实际上是char。当用户输入一串字母" abc"程序会说用户必须输入一个字符。
我在考虑使用
if(sizeof(userLetter != 1))
{
cout << "Enter only a single letter."
}
问题是,因为userLetter被初始化为一个字符,它会自动截断剩余的字母,并认为用户只输入一个字母。
有没有办法检查用户是否真的只输入1个字母而不将userLetter初始化为字符串?
答案 0 :(得分:2)
如果您读取一个字符,它只会读取一个字符并将以下字符保留在缓冲区中。
如果您想要按下用户输入的所有内容,直到他按下第一个输入,您需要获得一行:
string line;
while (getline(cin, line) && (line.length()==0 || line.length()>1) )
cout << "Enter only a single letter..."<<endl;
如果成功结束,请使用userLetter = line[0];