0

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

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

我试过以下代码:

cin.width(5);
辛 >> n;

但我意识到它并没有物理限制用户输入,而只是限制输入的缓冲区大小。

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

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

4

3 回答 3

2

您可以做一些奇怪的事情,例如一次读取单个字符,如果它们没有按第 4 个字符返回,请说无效输入,然后让它们重新开始,但是在之后调用长输入无效会更干净、更容易他们试图提交它。

于 2013-06-19T04:55:41.820 回答
1

您不能在标准控制台窗口中执行此操作,但如果您使用 c++ 使用自己的输入框创建自己的窗口,那么您将拥有更多的灵活性。

于 2013-06-19T01:40:42.630 回答
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;
    }
}
于 2016-03-05T08:00:08.837 回答