我在linux中编C++程序,如何让键入的变量以*的样子显示?

必胜猫 2005-12-16 01:49:25
本人在用C++作一个程序,他不是那种可视化的,类似于DOS环境,在程序的开始,是提示用户,输入用户名和密码,可是在输入密码的时候,我敲入什么,屏幕就显示什么,我想让它以 * 的格式显示,并且不影响,这个变量真实的值,以便在输入后进行验证,请大家帮帮我。

在这期间csdn 里的一位高手曾告诉我用getch()并让我参考以下网页:http://community.csdn.net/Expert/topic/4451/4451696.xml?temp=.7796747
后来终于在windows平台下实现了这个功能。
可是后来我的程序又移到了linux中运行,一下子很多功能不能用了,
请大家帮帮我,这个以*显示的功能如何实现
...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2005-12-16
  • 打赏
  • 举报
回复
Linux的问题问到这里来了……

其实这就是一个“回显”的问题,getch()就是没有回显的,当然也可以在获得输入字符后回显一个“*”;getch()是C函数,Linux下面也应该支持的吧。
thisisll 2005-12-16
  • 打赏
  • 举报
回复
中文名叫 LINUX程序设计
我是在这个网站下的,一时半会找不到了
http://www.linuxc.net/viewthread.php?tid=295&fpage=1&highlight=&page=1
thisisll 2005-12-16
  • 打赏
  • 举报
回复
BeginningLinuxProgramming的例子
他是输入密码后不输出
我想能给你启发
这本书讲的很全,我还没空仔细看

#include <termios.h>
#include <stdio.h>

#define PASSWORD_LEN 8

int main()
{
struct termios initialrsettings, newrsettings;
char password[PASSWORD_LEN + 1];
tcgetattr(fileno(stdin), &initialrsettings);
newrsettings = initialrsettings;
newrsettings.c_lflag &= ~ECHO;

printf("Enter password: ");
if(tcsetattr(fileno(stdin), TCSAFLUSH, &newrsettings) != 0) {
fprintf(stderr,"Could not set attributes\n");
}
else {
fgets(password, PASSWORD_LEN, stdin);
tcsetattr(fileno(stdin), TCSANOW, &initialrsettings);
fprintf(stdout, "\nYou entered %s\n", password);
}
exit(0);
}

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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