在linux下终端C编程做登陆时界面时,怎么在输入密码时让它不显示输入内容,或者输入一个字符是*

micaixiaoduanku 2011-09-04 01:10:45
如题,求教
...全文
586 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
惬意 2011-09-06
  • 打赏
  • 举报
回复
楼上的哥哥终端属性设置的这么牛X啊!
沭水河畔 2011-09-04
  • 打赏
  • 举报
回复
这个函数也可以自己实现:

#define ECHOFLAGS (ECHO|ECHOE|ECHOK|ECHONL)

int getpasswd(char passwd[])
{
int ret=0;
struct termios termios_buf;

if(tcgetattr(STDIN_FILENO,&termios_buf)!=0)
{
perror("tcgetattr failed");
return -1;
}

termios_buf.c_lflag &= ~ECHOFLAGS;

if(tcsetattr(STDIN_FILENO,TCSAFLUSH,&termios_buf)!=0)
{
perror("tcsetattr failed");
return -2;
}

if(passwd!=NULL){
ret=scanf("%s", passwd);
}

//printf("\nYour passwd is %s\n",passwd);

if(tcgetattr(STDIN_FILENO,&termios_buf)!=0)
{
perror("tcgetattr failed");
return -1;
}

termios_buf.c_lflag |= ECHOFLAGS;

if(tcsetattr(STDIN_FILENO,TCSAFLUSH,&termios_buf)!=0)
{
perror("tcsetattr failed");
return -2;
}

return ret>0?0:1;
}
delphiwcdj 2011-09-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xharry 的回复:]

C/C++ code

#include <stdio.h>
#include <unistd.h>

int main()
{
char *passwd;

passwd = getpass("Enter your password:");

printf("\nThe password you entered:%s\n", passwd);

return 0……
[/Quote]
+1
念茜 2011-09-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xharry 的回复:]

C/C++ code

#include <stdio.h>
#include <unistd.h>

int main()
{
char *passwd;

passwd = getpass("Enter your password:");

printf("\nThe password you entered:%s\n", passwd);

return 0……
[/Quote]
+1
xharry 2011-09-04
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <unistd.h>

int main()
{
char *passwd;

passwd = getpass("Enter your password:");

printf("\nThe password you entered:%s\n", passwd);

return 0;
}
justkk 2011-09-04
  • 打赏
  • 举报
回复
考虑调用getpass()
stardust20 2011-09-04
  • 打赏
  • 举报
回复
可以考虑用getch实现
很好的linux C编程的书,请大家下载五个part(没办法,文件80M,我一次只能传15M),五个都下载了才能解压,这里就只在part1扣分,其他不扣分,请找我的另外四个资源。另外还有关盘,需要一个资源分,请到我的资源里下。 书的部分目录如下: 第一篇 Linux和C编程基础  第1章 Linux系统概述    1.1 Linux操作系统介绍     1.1.1 Linux的发展历程     1.1.2 Linux的特性     1.1.3 Linux的内核版本和发行版本    1.2 C语言简介     1.2.1 C语言的发展历史     1.2.2 C语言的特点    1.3 Linux的安装、启动与关闭    1.4 Linux的基本使用     1.4.1 Linux终端     1.4.2 Linux Shell     1.4.3 Linux的常用命令    1.5 Linux下程序的开发环境和开发过程    1.6 习题   第2章 C编程基础、Vi和Emacs编辑器    2.1 C程序的结构    2.2 C语言的基本数据类型     2.2.1 整型     2.2.2 浮点型     2.2.3 字符型    2.3 运算符和表达式     2.3.1 算术运算符与算术表达式     2.3.2 赋值运算符与赋值表达式     2.3.3 逗号运算符与逗号表达式    2.4 标准输入输出函数     2.4.1 字符输出函数putchar     2.4.2 字符输入函数getchar     2.4.3 格式化输出函数printf     2.4.4 格式化输入函数scanf    2.5 Vi编辑器的使用     2.5.1 Vi的工作模式     2.5.2 启动Vi     2.5.3 保存文件和退出Vi     2.5.4 光标的移动     2.5.5 文本的删除     2.5.6 文本查找和替换     2.5.7 文本的复制与粘贴    2.6 Emacs编辑器的使用    2.7 命名规范     2.7.1 标识符     2.7.2 关键字     2.7.3 命名规范    2.8 面试题选与实例精讲     2.8.1 面试题选     2.8.2 实例精讲    2.9 习题   第3章 C程序控制结构和gcc编译器    3.1 C程序的控制结构     3.1.1 C程序语句概述     3.1.2 C程序的3种基本控制结构    3.2 分支控制结构     3.2.1 关系运算符与关系表达式     3.2.2 逻辑运算符与逻辑表达式     3.2.3 if语句     3.2.4 switch语句    3.3 循环控制结构     3.3.1 while语句     3.3.2 do...while语句     3.3.3 for语句     3.3.4 break语句和continue语句    3.4 gcc编译器     3.4.1 程序的编译过程     3.4.2 gcc的常用选项     3.4.3 gcc的报错类型及对策    3.5 面试题选与实例精讲     3.5.1 面试题选     3.5.2 实例精讲    3.6 习题   第4章 C函数、数组、指针和调试器gdb   第5章 C语言预处理、结构体和make的使用  第二篇 Linux系统编程  第6章 文件操作   第7章 进程控制   第8章 线程控制   第9章 信号及信号处理   第10章 进程间通信  第三篇 Linux网络和图形界面编程  第11章 网络编程   第12章 GTK+图形界面编程  第四篇 Linux项目实践  第13章 项目实践:BT下载软件的开发

23,216

社区成员

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

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