限制用户输入的字符数

时间:2013-06-19 01:34:51

标签: c++ input user-input cin

我正在尝试限制用户可以输入的字符数 这与用户输入 abcde 时不同,我将输入长度限制为3,
并且只考虑 abc

有没有办法物理限制用户输入超过一定数量的字符?
例如,如果用户尝试键入 12345 ,并且我将其限制为3个字符,则只输入 123

我尝试过以下代码:

  

cin.width(5);
  cin>> N;

但我已经意识到它不会物理限制用户输入,但只限制输入的缓冲区大小。

有没有办法做这样的事情?

+)我正在使用控制台应用程序

3 个答案:

答案 0 :(得分:2)

你可以做一些奇怪的事情,例如一次一个地阅读单个角色,如果他们没有按第四个角色返回,说出无效输入然后让它们重新开始,但它更干净,更容易调用长输入尝试提交后输入无效。

答案 1 :(得分:1)

您无法在标准控制台窗口中执行此操作,但如果您使用c ++使用自己的输入框创建自己的窗口,那么您可以更灵活。

答案 2 :(得分:0)

您可能正在搜索: -

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string MyInput;
    std::cout << "INPUT HERE: ";
    std::getline(cin,MyInput);
    if (MyInput.length() == 3)
    {
        std::cout << "OKAY IT IS THREE CHARS" << std::endl;
    }
    else if (!(MyInput.length() == 3))
    {
        MyInput.erase(MyInput.begin()+3,MyInput.end());
        std::cout << "Look: " << MyInput << std::endl;
    }
}