用c++怎么实现输入密码事用星号掩盖

lyaivv 2007-07-05 07:13:07
怎么用c++实现对密码的星号掩盖?
...全文
1580 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
rsp19801226 2007-07-06
  • 打赏
  • 举报
回复
或者直接在输入后再输出"\r*"也是可以的吧
canybox 2007-07-06
  • 打赏
  • 举报
回复
不让输出屏幕就可以了
Inhibitory 2007-07-06
  • 打赏
  • 举报
回复
呵呵,原来秘密在于#include <conio.h>中的getch();当用getch()来从命令行请取字符时,在屏幕上并不显示输入的字符,用一个putch('*')来哄骗别人,输入了一个字符.

呵呵,con英文意思又叫精读,哄骗, 看来conio就是哄骗大家的输入输出意思了,歪解.
haozlee 2007-07-06
  • 打赏
  • 举报
回复
mark
chongchong183 2007-07-06
  • 打赏
  • 举报
回复
纯接分
hexl84 2007-07-06
  • 打赏
  • 举报
回复
领教了,关键就在把输入的字符保存的同时,输出*号
zjf405 2007-07-06
  • 打赏
  • 举报
回复
帮顶,接分
ffll8281 2007-07-06
  • 打赏
  • 举报
回复
楼上Inhibitory()的回复中

fflush(stdin);的作用是什么啊,那位高手给详细的讲讲?谢谢
yangsf5 2007-07-06
  • 打赏
  • 举报
回复
楼主是不是问WINMAIN哦?

30122002 c++交流群,欢迎加入.
caimps 2007-07-06
  • 打赏
  • 举报
回复
简单点
自己动手
每次键盘后判断
是可现字符就保存并在相应地方打个*
afgkidy 2007-07-06
  • 打赏
  • 举报
回复
该有的都有了。
CowmanGens 2007-07-06
  • 打赏
  • 举报
回复
#include "iostream"
#include "conio.h"
using namespace std;

void main()
{
int n = 0;
char* input = (char*)malloc(sizeof(char)*20);
cout << "Please input your screct:" << endl;
while((*(input+n) = getch()) != 13)
{
putchar('*');
n++;
}
*(input+n) = '\0';
cout << endl << "测试:" << endl;
puts(input);
}
laiwusheng 2007-07-06
  • 打赏
  • 举报
回复
暗传实际数据
实显如此多*
joneqq 2007-07-06
  • 打赏
  • 举报
回复
faint.
KenYuan2016 2007-07-06
  • 打赏
  • 举报
回复
getch();
putchar('*');
Inhibitory 2007-07-06
  • 打赏
  • 举报
回复
fflush(stdin);的作用是什么啊,那位高手给详细的讲讲?谢谢
-------------------------------------------------------
是用来刷新输入缓冲区的,以保证每次的输入都是你当前所输入的字符.
例如:
char ch1, ch2;
ch1 = getchar(); // 输入abc,按回车, abc被存入输入缓冲区,从输入缓冲区中读一个字符给ch1
cout << ch1; // 输出ch1
ch2 = getchar(); // 这里不会停下来,因为输入缓冲区中还有字符,所以再从中读取一个字符给
cout << ch2; // 结果ch1 = a, ch2 = b.

但是用了fflush(stdin)后:
char ch1, ch2;
ch1 = getchar(); // 输入abc,按回车, abc被存入输入缓冲区,从输入缓冲区中读一个字符给ch1
cout << ch1;
fflush(stdin); // 用fflush(stdin)清空了输入缓冲区
ch2 = getchar(); // 因为输入缓冲区中没有字符了,所以程序会停下来等待你的输入.输入ef
cout << ch2; // 结果ch1 = a, ch2 = e.
8819383 2007-07-06
  • 打赏
  • 举报
回复
ding..............
rainv 2007-07-06
  • 打赏
  • 举报
回复
mark
Inhibitory 2007-07-05
  • 打赏
  • 举报
回复
在网上找了个,我也看看去
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main()
{
char * passwd,*passwd2,*p1,*p2;
printf("\ninput the password(<100):");
passwd=(char *)malloc(sizeof(char)*101);
p1=passwd;
while ((*p1=getch())!=13)
{
putch('*');
fflush(stdin);
p1++;
}
*p1=0;
printf("\nconfirm please: ");
passwd2=(char *)malloc(sizeof(char)*101);
p2=passwd2;
while ((*p2=getch())!=13)
{
putch('*');
fflush(stdin);
p2++;
}
*p2=0;
if (!strcmp(passwd, passwd2))printf("accepted!");
else printf("\ndenied!\n");
getch();
return 0;
}
加载更多回复(9)

64,678

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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