请问如何实现控制台下输入但是控制台不回显(说白了就是怎样写控制台程序的密码输入部分)

along_2000 2005-03-04 04:37:03
rt
...全文
123 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanlei1978113 2005-03-04
  • 打赏
  • 举报
回复
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <termio.h>

int getPasswd(char *passwd)
{
struct termio tbuf_old,tbuf;

ioctl(0, TCGETA, &tbuf_old);
ioctl(0, TCGETA, &tbuf);
tbuf.c_lflag &=~ECHO;
if (ioctl(0, TCSETAF, &tbuf) != 0)
return;

printf("please input passwd:");
scanf("%s", passwd);
ioctl(0, TCSETAF, &tbuf_old);
return 0;
};

int main()
{
char passwd[8];

getPasswd( passwd );

printf("pass: %s\n", passwd);

return 1;
}
along_2000 2005-03-04
  • 打赏
  • 举报
回复
自己回复一下
windows平台可以用 getch() 在conio.h里面(VC和CygWin都是这个样子)
linux平台中,getch()不是标准函数,grep 一把发现curse.h的头文件有这个
但是被define为 wgetch(stdscr) 但是stdscr又是ncursse库才有的
HP和SUN同linux
但是AIX中除上诉外有一个cur01.h包含getch()函数。
天哪,救救我吧。
这么多平台都要跑,只要不用第三方库就行
along_2000 2005-03-04
  • 打赏
  • 举报
回复
自己up

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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