当前位置: 首页 > ai >正文

VB.NET Line Input有办法让输入的字符不显示在控制台上吗

在 Visual Basic.NET 里,Line Input 语句会在控制台显示用户输入的字符。要是你不想让输入的字符显示出来,例如在输入密码这种需要保密的场景下,可以使用 Console.ReadKey 方法来实现这个需求。下面为你介绍几种实现方式:

1. 使用 Console.ReadKey(True) 方法(回显星号)

这种方法会隐藏用户输入的字符,并且用星号(*)来替代显示,这样用户能知道自己输入了多少个字符。

Sub Main()Console.Write("请输入密码: ")Dim password As String = ""Dim key As ConsoleKeyInfo' 循环读取按键,直到用户按下 Enter 键Dokey = Console.ReadKey(True) ' True 参数表示不显示输入的字符' 处理退格键If key.Key = ConsoleKey.Backspace AndAlso password.Length > 0 Thenpassword = password.Substring(0, password.Length - 1)Console.Write(vbBack + " " + vbBack) ' 清除显示的星号ElseIf key.Key <> ConsoleKey.Enter Thenpassword += key.KeyCharConsole.Write("*") ' 显示星号替代实际字符End IfLoop Until key.Key = ConsoleKey.EnterConsole.WriteLine() ' 换行Console.WriteLine($"你输入的密码是: {password}")
End Sub

2. 使用 Console.ReadKey(True) 方法(完全隐藏输入)

这种方法会完全隐藏用户输入的字符,控制台不会显示任何内容。

Sub Main()Console.Write("请输入密码: ")Dim password As String = ""Dim key As ConsoleKeyInfo' 循环读取按键,直到用户按下 Enter 键Dokey = Console.ReadKey(True) ' True 参数表示不显示输入的字符' 处理退格键If key.Key = ConsoleKey.Backspace AndAlso password.Length > 0 Thenpassword = password.Substring(0, password.Length - 1)ElseIf key.Key <> ConsoleKey.Enter Thenpassword += key.KeyCharEnd IfLoop Until key.Key = ConsoleKey.EnterConsole.WriteLine() ' 换行Console.WriteLine($"你输入的密码是: {password}")
End Sub

3. 创建一个通用的输入函数

为了提高代码的复用性,你可以创建一个通用的函数来处理隐藏输入的操作。

vbnet

Module Module1Sub Main()Dim password As String = ReadPassword("请输入密码: ")Console.WriteLine($"你输入的密码是: {password}")End SubFunction ReadPassword(prompt As String) As StringConsole.Write(prompt)Dim password As String = ""Dim key As ConsoleKeyInfoDokey = Console.ReadKey(True)If key.Key = ConsoleKey.Backspace AndAlso password.Length > 0 Thenpassword = password.Substring(0, password.Length - 1)Console.Write(vbBack + " " + vbBack)ElseIf key.Key <> ConsoleKey.Enter Thenpassword += key.KeyCharConsole.Write("*")End IfLoop Until key.Key = ConsoleKey.EnterConsole.WriteLine()Return passwordEnd Function
End Module

代码说明:

  • Console.ReadKey(True):这个方法会读取用户按下的按键,True 参数的作用是让按键不显示在控制台上。
  • 处理退格键:在代码中,我们对退格键进行了特殊处理,这样用户就可以删除输入错误的字符。
  • 显示星号:当用户输入字符时,控制台会显示星号(*),让用户能直观地知道自己输入了多少个字符。
  • 循环读取:程序会不断循环读取按键,直到用户按下 Enter 键才会结束输入。

通过使用这些方法,你就能在控制台应用程序中实现隐藏用户输入字符的功能了。

http://www.xdnf.cn/news/4866.html

相关文章:

  • Flutter 3.29.3 花屏问题记录
  • IBM BAW(原BPM升级版)使用教程第六讲
  • 一、每日Github软件分享----QuickGo外链直达工具​
  • 力扣刷题(第二十一天)
  • 涨薪技术|0到1学会性能测试第56课- 堆与栈、GC回收机制
  • 如何使用测试软件 Jmeter
  • 检查当前 Docker 使用的 默认运行时(default runtime)方法
  • mysql主从同步
  • Docker组件详解:核心技术与架构分析
  • 三维底座+智能应用,重构城市治理未来
  • WorkManager与Kotlin后台任务调度指南
  • 牛客练习赛138-题解
  • leetcode 383. Ransom Note
  • 开源AI对比--dify、n8n
  • 记录一下学习kafka的使用以及思路
  • Windows远程访问Ubuntu的方法
  • zst-2001 历年真题 设计模式
  • 多视图密集对应学习:细粒度3D分割的自监督革命
  • 使用PyTorch训练马里奥强化学习代理的完整指南
  • 系统思考:短期困境与长期收益
  • Webpack基本用法学习总结
  • Vue3 + Typescript 基础进阶与实战完全指南
  • SQL进阶:如何把字段中的键值对转为JSON格式?
  • python调用国税乐企直连接口开数电票之额度管理
  • transformer 笔记 tokenizer moe
  • 科技创业园共享会议室线上预约及智能密码锁系统搭建指南
  • FPGA实战项目2———多协议通信控制器
  • 学习黑客认识数字取证与事件响应(DFIR)
  • 安科瑞ADL3000-E-A/KC三相交流电能表CE认证导轨表
  • Spring AI 系列——使用大模型对文本内容分类归纳并标签化输出