Adjunto 'password_b.c'
Descargar 1 #include <termios.h>
2 #include <stdio.h>
3
4 static struct termios old, new;
5
6 /* Initialize new terminal i/o settings */
7 void initTermios(int echo)
8 {
9 tcgetattr(0, &old); /* toma la configuración antigua de i/o de la terminal (grab old terminal i/o settings) */
10 new = old; /* genera una nueva estructura de configuración igual a la antigua (make new settings same as old settings) */
11 new.c_lflag &= ~ICANON; /* disable buffered i/o */
12 if (echo) {
13 new.c_lflag |= ECHO; /* setea en ON el modo ECO (set echo mode) */
14 } else {
15 new.c_lflag &= ~ECHO; /* setea en Off el modo ECO (set no echo mode) */
16 }
17 tcsetattr(0, TCSANOW, &new); /* setea la terminal con los nuevos atributos (use these new terminal i/o settings now) */
18 }
19
20 /* Resetea la terminal a la configuración antigua (Restore old terminal i/o settings) */
21 void resetTermios(void)
22 {
23 tcsetattr(0, TCSANOW, &old);
24 }
25
26 /* Read 1 character - echo defines echo mode */
27 char getch_(int echo)
28 {
29 char ch;
30 initTermios(echo); /* inicializa la terminal con el modo de ECO pasado como parametro */
31 ch = getchar(); /* lee un nuevo caracter */
32 resetTermios(); /* restaura la terminal a su configuracion previa a la ejecucion del programa */
33 return ch;
34 }
35
36 /* Read 1 character without echo */
37 char getch(void)
38 {
39 return getch_(0);
40 }
41
42 /* Read 1 character with echo */
43 char getche(void)
44 {
45 return getch_(1);
46 }
47
48 /* Let's test it out */
49 int main(void) {
50 char c;
51 printf("(getche example) please type a letter: ");
52 c = getche(); /* la funcion getche() lee un caracter con ECO */
53 printf("\nYou typed: %c\n", c);
54 printf("(getch example) please type a letter...");
55 c = getch(); /* la funcion getch() lee un caracter sin ECO */
56 printf("\nYou typed: %c\n", c);
57 return 0;
58 }
Archivos adjuntos
Para referirse a los adjuntos de una página, usa attachment:nombredelarchivo, como se muestra abajo en la lista de archivos. NO uses la URL del enlace [get], ya que puede cambiar fácilmente y dejar de funcionar.No tienes permisos para adjuntar un archivo a esta página.