函数问题

zihuilegend 2003-12-23 04:08:38
我在lunix下用getch(), 为啥编译不对呢,已经包含头文件curses.h。
请大哥大姐指点一二。
我的目的是想输入字符但是不在显示屏自动显示,由我控制是否显示该字符。
...全文
55 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zihuilegend 2003-12-24
  • 打赏
  • 举报
回复
对, 和你说得一样,我找到资料了, 要用tcsetattr()。
多谢楼上了。
wildhorseych 2003-12-23
  • 打赏
  • 举报
回复
你是不是想达到输入密码而不回显的效果,算你有运气,我刚好写过这样一个关闭字符回显的小函数,给你参考一下。
int CloseInputEcho(struct termios &old_flag)
{
int ret;
struct termios new_flag;
tcgetattr(fileno(stdin),&old_flag);
new_flag=old_flag;
new_flag.c_lflag&=~ECHO;
new_flag.c_lflag|=ECHONL;
ret=tcsetattr(fileno(stdin),TCSAFLUSH,&new_flag);
if(ret!=0)
{
perror("Failed to set attributes");
tcsetattr(fileno(stdin),TCSANOW,&old_flag);
exit(-1);
}
tcgetattr(fileno(stdin),&new_flag);
if((new_flag.c_lflag&ECHO)||(!new_flag.c_lflag&ECHONL))
{
perror("Failed to turn off ECHO");
tcsetattr(fileno(stdin),TCSANOW,&old_flag);
exit(-1);
}
return 0;
}
int OpenInputEcho(struct termios old_flag)
{
tcsetattr(fileno(stdin),TCSANOW,&old_flag);
}
holymoon 2003-12-23
  • 打赏
  • 举报
回复
你需要重新设置终端的模式,具体的函数接口看看ncurses 编程手册吧!

23,121

社区成员

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

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