C++里怎么限制输入字符的长度?
发布网友
发布时间:2022-04-27 12:52
我来回答
共5个回答
热心网友
时间:2022-04-27 14:21
cout << "Enter the term (6-charactrer Allowed): \n";
cin.getline(temp->term, 7); //如果输入超过6个,那么会把剩下的留在缓冲区,而下一
//次输入是int, 那么会导致类型不符拒绝读取
cin.sync(); //清理输入缓冲区
cin.clear(); //清除异常标志
cout << "Enter the units : ";
cin >> temp->units;
//cin.ignore(1000, 10);追问不行啊,编译以后term超过6个字符还是会无限循环啊???
热心网友
时间:2022-04-27 15:39
这个可以从缓冲区来做
有一个输入缓冲区,不管是gets或者for循环用scanf单个输入,输入后先进入缓冲区,在从缓冲区读入
你可以定义缓冲区的长度,让他不进入缓冲区,直接读入
具体做法我不知道,你百度一下吧
请采纳答案,支持我一下。
热心网友
时间:2022-04-27 17:14
*输入字符的长度
目标:在编辑框中输入的内容只能是0和1,而且输入内容的长度不能超过32位。
实现方法:*输入字符的内容,可以达到过滤非法字符的作用。
1、首先新建一个MFC类:CLimitEdit,基类是CEdit。
2、添加响应WM_CHAR消息的事件OnChar。在其中输入的内容只能为0和1.代码如下:
if(!((nChar == 8) || ((nChar >= 48)&&(nChar <= 49))))
{
return;
}
3、为编辑框绑定CLimitEdit类型的控件变量:m_string。
若程序出现错误,看是否缺少头文件:#include “LimitEdit.h”
4、在CSheZhiDlg类的DoDataExchange中添加代码,控制用户输入的字符串不超过32各字符。
m_string.SetLimitText(32);
其他*条件:如控制输入的内容只能为字母或数字。
//8为回格键(Back Space)
//65到90之间为大写字母
//97到122之间为小写字母
//48到57之间为数字
if(!((nChar == 8) || ((nChar >= 65)&&(nChar <= 90)) || ((nChar >= 97)&&(nChar <= 122)) || ((nChar >= 48)&&(nChar <= 57))))
{
return;
}
热心网友
时间:2022-04-27 19:05
直接强制限定,或者转换也行