-2

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

我在考虑使用

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

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

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

4

1 回答 1

2

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

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

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

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

于 2016-10-25T22:33:43.490 回答