问题描述
usingSystem;usingSystem.Collections;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication7{classA{staticvoidMain(){chara;StringBuilderb=newStringBuilder();a=Console.ReadKey(true).KeyChar;while(a!='r'){b.Append(a);Console.Write("*");a=Console.ReadKey(true).KeyChar;}Console.ReadKey();}}}输出的虽然是星号,但是要如何退格啊?
解决方案
解决方案二:
因为我是初学者,所以大兄弟们别讲的太深奥了。我怕看不懂
解决方案三:
你想要实现的“退格”是个什么样的效果呢?就是像按下退格键后删除最后一个字符那样吗?Console程序只是用来输入输出的,很奇怪你怎么会有这样的想法。
解决方案四:
引用2楼rocmemory的回复:
你想要实现的“退格”是个什么样的效果呢?就是像按下退格键后删除最后一个字符那样吗?Console程序只是用来输入输出的,很奇怪你怎么会有这样的想法。
对啊,这个就相当于输入密码,如果输入错误我肯定要退格删除最后一个字符啊,但是这个代码把退格(backspace)也当成是一个字符了,怎样才能实现我按下退格键的时候能把最后一个字符删除?
解决方案五:
你的整个逻辑有问题,所以我重写了一下给你,测试已通过staticvoidMain(string[]args){while(true){chara=Console.ReadKey(true).KeyChar;if(a=='r'){//验证密码}elseif(a=='b'){Console.SetCursorPosition(Console.CursorLeft-1,Console.CursorTop);Console.Write("");Console.SetCursorPosition(Console.CursorLeft-1,Console.CursorTop);}else{Console.Write('*');}}}
解决方案六:
引用4楼rocmemory的回复:
你的整个逻辑有问题,所以我重写了一下给你,测试已通过staticvoidMain(string[]args){while(true){chara=Console.ReadKey(true).KeyChar;if(a=='r'){//验证密码}elseif(a=='b'){Console.SetCursorPosition(Console.CursorLeft-1,Console.CursorTop);Console.Write("");Console.SetCursorPosition(Console.CursorLeft-1,Console.CursorTop);}else{Console.Write('*');}}}
谢谢但是如果我要用计算机保存这一串字符应该怎么办呢?这一串字符是什么形式的?好像如果我打印出来的一串字符既不是char形式又不是string形式的吧?其实我是想做一个最简单的账号注册后登录的程序,就是先注册后登录。你给我的代码怎样修改一下才让计算机记录下来打下的一串字符呢?用stringbulider可以么?(我只是个初学者,有些东西不懂或者描述的不清楚请多包涵。。。)。
解决方案七:
引用5楼qq_34660291的回复:
Quote: 引用4楼rocmemory的回复:
你的整个逻辑有问题,所以我重写了一下给你,测试已通过staticvoidMain(string[]args){while(true){chara=Console.ReadKey(true).KeyChar;if(a=='r'){//验证密码}elseif(a=='b'){Console.SetCursorPosition(Console.CursorLeft-1,Console.CursorTop);Console.Write("");Console.SetCursorPosition(Console.CursorLeft-1,Console.CursorTop);}else{Console.Write('*');}}}谢谢但是如果我要用计算机保存这一串字符应该怎么办呢?这一串字符是什么形式的?好像如果我打印出来的一串字符既不是char形式又不是string形式的吧?其实我是想做一个最简单的账号注册后登录的程序,就是先注册后登录。你给我的代码怎样修改一下才让计算机记录下来打下的一串字符呢?用stringbulider可以么?(我只是个初学者,有些东西不懂或者描述的不清楚请多包涵。。。)。
我试了一下,用我一开始的stringbulider的方法可以记录这一串字符,但是貌似又出现了另外一个问题,就是虽然可以在屏幕上删除字符,但是电脑还是会记录下来你刚刚删除的东西,比如我输入123456,按了两下退格键,虽然屏幕上的星号从六个变成了四个,但是当我在最后打印这一串字符进行验证是否真正删除了的时候屏幕上还是显示123456并不会显示1234。
解决方案八:
如果我对你说一句话,是不是必须开着录音机,我才能把这句话记录下来?我是不是可以在说每个字的时候,让大脑临时记住这个字,然后再把每个字组装成一句话储存在大脑的某个区域呢?你这些近乎偏离编程的问题,其实已经不该在这里提出了,找一本书,耐心从语法、输入输出开始,学习编程,努力不让自己再是个“门外汉”