Aquí es una función de ejemplo:¿Es posible leer desde la consola con escaneo sin repetir los caracteres?
passwordEntry <- function() {
cat("Enter your password: ")
pwd <- scan(n=1, what=character(), quiet=TRUE)
invisible(pwd)
}
Y para probar la función:
> passwordEntry()
Enter your password:
1: test
>
¿Hay una manera de suprimir lo que el usuario? ¿O lo reemplazas con algún otro personaje? Escribí una función tcl/tk para solicitar una contraseña al usuario, pero no funciona en nuestro servidor Linux.
Aquí hay un ejemplo del enlace de Paul a continuación. Esto no funciona ni en Linux ni en Windows (lo último probablemente porque no tengo un compilador de C adecuado, así que lo investigaré).
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;
}
Y mi test.r
guión:
system('R CMD SHLIB getkey3.c')
dyn.load("getkey3.so")
.C("mygetch",as.integer(0))
dyn.unload("getkey3.so")
me sale esto:
> .C("mygetch",as.integer(0))
[[1]]
[1] -1
prueba 'gWidgets' en lugar de' tcl/tk'? –
probado gWidgets. El problema es que no hay un sistema de ventanas en el servidor Linux. De hecho, no estoy seguro de que haya siquiera una tarjeta gráfica. – jbryer