【问题标题】:Validating if single char is char验证单个 char 是否为 char
【发布时间】:2016-10-25 22:28:05
【问题描述】:

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

我在考虑使用

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

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

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

【问题讨论】:

  • C++ 是静态类型的。一个字符就是一个字符。
  • 阅读整行,而不仅仅是一个字符。
  • 你输入的怎么样?是用 cin 还是 getline 还是别的什么?
  • cin.get(userLetter)
  • 你需要读一整行输入,并检查它是否有超过1个字符

标签: c++ iostream formatted-input


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 2015-02-12
    • 2010-09-08
    相关资源
    最近更新 更多