这是一个示例函数:
passwordEntry <- function() {
cat("Enter your password: ")
pwd <- scan(n=1, what=character(), quiet=TRUE)
invisible(pwd)
}
Run Code Online (Sandbox Code Playgroud)
并测试功能:
> passwordEntry()
Enter your password:
1: test
>
Run Code Online (Sandbox Code Playgroud)
有没有办法压制用户输入的内容?或者换一些其他角色?我编写了一个tcl/tk函数来提示用户输入密码,但它在我们的Linux服务器上不起作用.
以下是Paul的链接示例.这在Linux或Windows上都不起作用(后者可能因为我没有合适的C编译器,所以会考虑到这一点).
getkey3.c
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
void mygetch ( int *ch )
{
struct termios oldt, newt;
tcgetattr ( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr ( STDIN_FILENO, TCSANOW, &newt );
*ch = getchar();
tcsetattr ( STDIN_FILENO, TCSANOW, &oldt );
return;
}
Run Code Online (Sandbox Code Playgroud)
我的test.r剧本:
system('R CMD SHLIB getkey3.c')
dyn.load("getkey3.so")
.C("mygetch",as.integer(0))
dyn.unload("getkey3.so")
Run Code Online (Sandbox Code Playgroud)
我明白了:
> .C("mygetch",as.integer(0))
[[1]]
[1] -1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |