我正在尝试限制用户可以输入的字符数。
这不像用户输入abcde时,我将输入长度限制为 3,
并且只考虑abc 。
有没有办法在物理上限制用户输入超过一定数量的字符?
例如,如果用户尝试输入12345,并且我将其限制为 3 个字符,则只有123被输入。
我试过以下代码:
cin.width(5);
辛 >> n;
但我意识到它并没有物理限制用户输入,而只是限制输入的缓冲区大小。
有没有办法做这样的事情?
+) 我正在开发控制台应用程序
我正在尝试限制用户可以输入的字符数。
这不像用户输入abcde时,我将输入长度限制为 3,
并且只考虑abc 。
有没有办法在物理上限制用户输入超过一定数量的字符?
例如,如果用户尝试输入12345,并且我将其限制为 3 个字符,则只有123被输入。
我试过以下代码:
cin.width(5);
辛 >> n;
但我意识到它并没有物理限制用户输入,而只是限制输入的缓冲区大小。
有没有办法做这样的事情?
+) 我正在开发控制台应用程序
您可以做一些奇怪的事情,例如一次读取单个字符,如果它们没有按第 4 个字符返回,请说无效输入,然后让它们重新开始,但是在之后调用长输入无效会更干净、更容易他们试图提交它。
您不能在标准控制台窗口中执行此操作,但如果您使用 c++ 使用自己的输入框创建自己的窗口,那么您将拥有更多的灵活性。
您可能正在寻找这个:--
#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;
}
}