您的位置:首页 >> 操作系统 >> Solaris >> 正文
RSS
 

使程序不回射输入字符串的方法.....

http://www.rdxx.com 05年09月13日 22:53 Blog.ChinaUnix.net 我要投稿

关键词: 字符串 , 方法 , 程序 , 字符

在程序中可能碰到这样的事情,你想输入一些数据,但是又不想回显到屏幕上,怎么作呢?很挠头吧......

其实这样就可以了......

我怎样能使我的程序不回射输入,就象登录时询问我的口令时那样?

有一个简单方法,也有一个稍微复杂点的方法:

简单方法是使用‘getpass()’函数,它几乎能在所有Unix系统上找到。它以一个给定的字符串参数作为提示符(prompt)。它读取输入直到读到一个‘EOF’或换行符(译者注:‘EOF’用‘^d’输入,而换行符为‘^m’或回车)然后返回一个指向位于静态内存区包含键入字符的字符串指针。(注:字符串不包含换行符)

复杂一点的方法是使用‘tcgetattr()’函数和‘tcsetattr()’函数,两个函数都使用一个‘struct termios’结构来操纵终端。下面这两段程序应当能设置回射状态和不回射状态。

两段程序使用到的都是在POSIX标准定义的,通用性很好。

     #include <stdlib.h>     #include <stdio.h>     #include <termios.h>
     #include <string.h>     static struct termios stored_settings;     void echo_off(void)     {         struct termios new_settings;         tcgetattr(0,&stored_settings);         new_settings = stored_settings;         new_settings.c_lflag &= (~ECHO);         tcsetattr(0,TCSANOW,&new_settings);         return;     }     void echo_on(void)     {         tcsetattr(0,TCSANOW,&stored_settings);         return;     }    

 


 
 
标签: 字符串 , 方法 , 程序 , 字符 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站