验证单个字符是否为字符

Validating if single char is char

我想验证一个字符是否真的是一个字符。当用户输入一串字母时 "abc" 程序会提示用户必须输入一个字符。

我正在考虑使用

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

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

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

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

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

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

成功结束后,获取字符串的第一个字符 userLetter = line[0];