控制台输入只能是数字

zcasd123 2012-02-27 02:43:51
如题,在控制台程序中提示输入 学生人数,只能输入数字 且不能为0,不使用报错的方式解决,能不能禁止输入字母或其他,就是除了按数字键,其他都没有反应!
求解
给出要求解决的代码
Console.Write("请输入班级人数: students=");
int acount_students =Convert.ToInt32( Console.ReadLine());
student= //只能输入数字
...全文
316 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wq34762707 2012-02-27
  • 打赏
  • 举报
回复
貌似来晚了
zcasd123 2012-02-27
  • 打赏
  • 举报
回复
我表示不再纠结!完贴
EnForGrass 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zcasd123 的回复:]

引用 4 楼 wuyazhe 的回复:

C# code
int acount_students;
do
{
Console.WriteLine("请输入班级人数: students=");
}while(!int.TryParse(Console.ReadLine(),out acount_students));
//acount_students一定数字了
这个貌似于 一……
[/Quote]
没看到是循环啊,用正则就简单
zcasd123 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyazhe 的回复:]

C# code
int acount_students;
do
{
Console.WriteLine("请输入班级人数: students=");
}while(!int.TryParse(Console.ReadLine(),out acount_students));
//acount_students一定数字了
[/Quote]这个貌似于 一个人要说话 你说:不要说了 他还在说 你继续说: 不要说了,一直没完没了
muyi66 2012-02-27
  • 打赏
  • 举报
回复
你最好是别了解了。因为以后你根本不会用它做事情。

控制台界面对于大多数人来说就是用来学编程的——因为很简单,学到一定程度之后通常就不再用它了。
zcasd123 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 thedolphin 的回复:]

private void txtmoney_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= 48 && e.KeyChar <= 57) || e.KeyChar == 46 || e.KeyChar == 8)
{
……
[/Quote]我看你写的好像不是控制台程序
zcasd123 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 trunjun 的回复:]

兄弟,别纠结这种问题了。
我当年也犯过和你类似的问题。这个没必要非要限制。
你还是在继续学习下知识吧,这问题以后就不是问题了。
[/Quote]我就想多了解点。0.0
朕赐你肥皂 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyazhe 的回复:]

C# code
int acount_students;
do
{
Console.WriteLine("请输入班级人数: students=");
}while(!int.TryParse(Console.ReadLine(),out acount_students));
//acount_students一定数字了
[/Quote]

EnForGrass 2012-02-27
  • 打赏
  • 举报
回复
判断一下就行了
using System.Text.RegularExpressions;
bool isnum= Regex.IsMatch(Console.ReadLine(),@"^[1-9]\d*");
淘淘大师 2012-02-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 thedolphin 的回复:]

private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar!=8&&!Char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
或者
private void TextBox_KeyPre……
[/Quote]

正解
兔子-顾问 2012-02-27
  • 打赏
  • 举报
回复
int acount_students;
do
{
Console.WriteLine("请输入班级人数: students=");
}while(!int.TryParse(Console.ReadLine(),out acount_students));
//acount_students一定数字了
色拉油 2012-02-27
  • 打赏
  • 举报
回复
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar!=8&&!Char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
或者
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar!='\b'&&!Char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
色拉油 2012-02-27
  • 打赏
  • 举报
回复
private void txtmoney_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= 48 && e.KeyChar <= 57) || e.KeyChar == 46 || e.KeyChar == 8)
{
return;
}
else
{
e.KeyChar = (char)Keys.None;
return;
}
}
trunjun 2012-02-27
  • 打赏
  • 举报
回复
兄弟,别纠结这种问题了。
我当年也犯过和你类似的问题。这个没必要非要限制。
你还是在继续学习下知识吧,这问题以后就不是问题了。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧