验证单个char是否为char

时间:2016-10-25 22:28:05

标签: c++ iostream formatted-input

我想验证char是否实际上是char。当用户输入一串字母" abc"程序会说用户必须输入一个字符。

我在考虑使用

if(sizeof(userLetter != 1))
{
    cout << "Enter only a single letter."
}

问题是,因为userLetter被初始化为一个字符,它会自动截断剩余的字母,并认为用户只输入一个字母。

有没有办法检查用户是否真的只输入1个字母而不将userLetter初始化为字符串?

1 个答案:

答案 0 :(得分:2)

如果您读取一个字符,它只会读取一个字符并将以下字符保留在缓冲区中。

如果您想要按下用户输入的所有内容,直到他按下第一个输入,您需要获得一行:

 string line; 
 while (getline(cin, line) && (line.length()==0 || line.length()>1) )  
    cout << "Enter only a single letter..."<<endl; 

如果成功结束,请使用userLetter = line[0];

获取第一个字符串字符