🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #5916

Re: [C] Introducir datos en modo oculto

#5916
From: Fernando Arbeiza
Date: Mon, 01 Sep 2003 14:39
85 lines
3382 bytes
On Mon, 01 Sep 2003 16:17:00 +0200, Eris Pluvia
<eris_pluviaNOSPAM@yahoo.es> wrote:
>> �Te refieres a una funci�n tan peligrosa como gets? ;-)
> 
> Bueno, yo realmente uso fgets... ;-)

Como hay que hacer, s� se�or.

>> En resumen, puedes utilizar la librer�a ncurses. Un ejemplillo:
> 
> Algo as� andaba buscando. Ten�a un c�digo muy parecido para W95 con la
> librer�a conio pero no consegu�a traducirlo para ncurses (en parte porque
> reconozco que no tengo ni idea).

Pos mira. Uno en ingl�s y otro en espa�ol:

    <URL: http://en.tldp.org/HOWTO/NCURSES-Programming-HOWTO/>
    <URL: http://ditec.um.es/~piernas/manpages-es/otros/tutorial-ncurses.html>

> Lo he probado y funciona. Muchas gracias ;-)

De nada. Pero no descartes las otras posibilidades. Tienen dos ventajas,
no borran la pantalla y no necesitas ninguna librer�a (aunque una
depende de que el sistema sea POSIX y la otra de que exista el comando
stty). Pero bueno, como tengo un ratito; ah� van dos ejemplos de otras
formas:

/**********************************************************************/
/* posix.c */

#include <stdio.h>

#include <unistd.h>
#include <termios.h>

#define NUM_CHAR    256

void echo_toggle(void) {
    struct termios  settings;
    tcgetattr(0, &settings);
    settings.c_lflag = settings.c_lflag ^ ECHO;
    tcsetattr(0, TCSANOW, &settings);
}

int main(void) {
    char frase[NUM_CHAR];

    echo_toggle();
    fgets(frase, 256, stdin);
    echo_toggle();
    puts(frase);

    return 0;
}
/* Fin de Fichero */
/**********************************************************************/

/**********************************************************************/
/* stty.c */

#include <stdlib.h>
#include <stdio.h>

#define NUM_CHAR    256
#define ECHO_OFF    "stty -echo"
#define ECHO_ON     "stty echo"

int main(void) {
    char frase[NUM_CHAR];

    system(ECHO_OFF);
    fgets(frase, 256, stdin);
    system(ECHO_ON);
    puts(frase);

    return 0;
}

/* Fin de Fichero */
/**********************************************************************/

Un saludo.
-- 
Fernando Arbeiza        <URL: mailto:arbeizaf@ono.com>
Crea tu propio Linux:   <URL: http://www.escomposlinux.org/lfs-es>
Technical Details
Message-ID: <slrnbl6mhr.33r.arbeizaf@jupiter.olimpo.homelinux.org>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!81-203-248-186.user.ono.COM!not-for-mail
References: <biv62v$d45gm$1@ID-158102.news.uni-berlin.de> <slrnbl6913.1lb.arbeizaf@jupiter.olimpo.homelinux.org> <bivkd5$dj8dn$1@ID-158102.news.uni-berlin.de>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,63ddb766068b04b4
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2003-09-01 07:47:19 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!81-203-248-186.user.ono.COM!not-for-mail
From: Fernando Arbeiza <arbeizaf@ono.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: [C] Introducir datos en modo oculto
Date: Mon, 1 Sep 2003 16:39:55 +0200
Lines: 85
Message-ID: <slrnbl6mhr.33r.arbeizaf@jupiter.olimpo.homelinux.org>
References: <biv62v$d45gm$1@ID-158102.news.uni-berlin.de> <slrnbl6913.1lb.arbeizaf@jupiter.olimpo.homelinux.org> <bivkd5$dj8dn$1@ID-158102.news.uni-berlin.de>
NNTP-Posting-Host: 81-203-248-186.user.ono.com (81.203.248.186)
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8bit
X-Trace: news.uni-berlin.de 1062427637 14079489 81.203.248.186 (16 [148301])
X-Orig-Path: jupiter.olimpo.homelinux.org!news
User-Agent: slrn/0.9.7.4 (Linux)