C语言控制台实现:怎样让输入的字符不回显
发布网友
发布时间:2022-10-14 10:32
我来回答
共2个回答
热心网友
时间:2024-06-25 11:23
用getch()即可,头文件#include<conio.h>程序例:模拟密码的输入我的百度空间: http://hi.baidu.com/mayadong7349/blog/item/c6ab89d1c7d64338960a16e8.html在百度贴吧看到的你的帖子 嘿嘿#include<conio.h>
#include<stdio.h>
int main()
{
char ch[17];
int i=0;
while(1)
{
ch[i]=getch();
if(ch[i]=='\r')
break;
printf("*");
i++;
}
ch[i]='\0';
printf("\n您刚才输入的密码是:\n%s\n",ch);
return 0;
}有啥疑问可以交流
热心网友
时间:2024-06-25 11:24
linux下的getch实现,获取密码
#ifndef _WIN32//非windows下getch处理
int getch()
{
struct termios oldt, newt;
int ch;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
return ch;
}
#endif
//获取密码,密码字符串pwd和pwd长度pwd_len
void getpwd(char* pwd,int pwd_len)
{
int i = 0;
char let = 0, ch = '*';
while (i <= pwd_len && let != '\r'&&let != '\n')
{
let = getch();
if (let != '\b'&&let != 127)
{
pwd[i++] = let;
putchar(ch);
}
else
{
if (i>0)
{
pwd[--i] = 0;
putchar('\b');
putchar(' ');
putchar('\b');
}
}
}
if (let != '\n')
--i;
pwd[i] = 0;
putchar('\b');
putchar(' ');
putchar('\b');
}