c++如何限制用户只输入数字

如果输入其它的比如字符串、标点符号之类的报错... 如果输入其它的比如字符串、标点符号之类的 报错 展开
 我来答
jierandefeng
推荐于2017-10-07 · TA获得超过212个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:329万
展开全部
两种办法:
第一:在控件属性里把number选项勾上,就只能输入数字了。

第二:用编程方法判断输入的字符具体是重载ON_EN_CHANGE消息函数
把以下代码加入到 函数过程里就可以了。
CString csAreaS;
GetDlgItem( IDC_EDIT_ID )->GetWindowText( csAreaS );
// 只允许输数据
int nStringLength = csAreaS.GetLength();
int nDotCount = 0;
// 点字符不能多于1个
for ( int nIndex = 0; nIndex < nStringLength; nIndex++ )
{
if ( csAreaS[ nIndex ] == '.' )
{
nDotCount++;
if ( nDotCount > 1 )
{
CString csTmp;
csTmp = csAreaS.Left( nIndex );
csTmp += csAreaS.Right( csAreaS.GetLength() - nIndex - 1 );
//csRadius = csRadius.Left( nIndex + 1 ) + csRadius.Right( nStringLength - ( nIndex + 1 ) - 1 );
GetDlgItem( IDC_EDIT_ID )->SetWindowText( csTmp );
return;
}
}
}

// 不允许输入数字以外的字符
for ( int Index = 0; Index < nStringLength; Index++ )
{
if ( csAreaS[ Index ] > '9' || csAreaS[ Index ] < '0' )
{
csAreaS = csAreaS.Left( Index ) + csAreaS.Right( csAreaS.GetLength() - Index - 1 );
GetDlgItem( IDC_EDIT_ID )->SetWindowText( csAreaS );
return;
追问
谢谢啦,很详细。
我想问一下:
c++ 数组中(已经赋予了初值)如何让用户输入回车结束输入
追答
判断下行到的字符就可以了
回车是 '\0'
就判断下是否有这个字符,如果有说明敲了回车。停止接收字符就OK啦
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式