新手问个C中用户输入的问题

vnvlyp vnvlyp 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
刚学C不到三个月,问一下各位大神一些控制台用户输入的问题。
现在搞一个简单文件加密的程序,想实现两个效果:
1.文件加密前,要输入密钥,但是用scanf的话,会直接显示在屏幕上,我现在换用getch,然后再用putchar('*')输出星号,这样密钥不会直接显示出来,而用户也知道输入了多少个字符,但有个问题,如果用户按退格想删除前面一个字符,就不好办了,问题主要是显示的星号无法删除,如果我输入一个\b,那么仅仅是光标回去了,并不会删除前面那个星号,当然我接收密钥的字符数组中要删除前面那个字符还是没有问题,这在功能上没有大碍,但是总觉得显示效果上不太好,用户可能并不知道是否删没删,所以想问一下怎么实现scanf那种效果,但是输入的字符不回显的,而是输出星号或别的字符的?

2.加密要输入源文件盒目标文件,当用户输了源文件后,我想用户再输入目标文件时,默认目录就是源文件的目录,比如源文件是D:\file\1.rar,然后要用户输目标文件时,默认就是D:\file\,接下来要用户补全,但是,如果用户不想放在同一个目录里面的话,要能修改这个默认目录,由于第一个问题无法解决,所以这个问题也没解决。

我搜了一下,发现有些人说putchar或者其他方法输出到屏幕上的字符就不能删掉了,真的这样吗。。
...全文
评论 9
收藏 已收藏
分享
返回顶部
vnvlyp
C语言 70,039 成员 243,237 内容