Discussion:
¿el equivalente a input de basic? EN HEXA
(demasiado antiguo para responder)
baldo 4 R
2003-11-09 23:17:34 UTC
Permalink
me defiendo como gato panza arriba en c, y ademas me repase el grupo en
google. me da verguenza preguntar esto.

lo que quiero es controlar un invento mio por el rs232, quiero escribir el
numero en hexadecimal y mandarlo, tengo una prueba:

void main(void) { int kk; resetrs(1);
while(1) {scanf("%x",&kk);printf(" %x ",kk);}
}

parece que funciona hasta que meto la pata y pongo letra mala. ejemplo 2G.

¿alguna rutinilla o funcion que recoja y filtre a hexa?
JGauss
2003-11-10 02:40:24 UTC
Permalink
### baldo 4 R dijo el día Lunes, 10 de Noviembre de 2003 00:17 en el
grupo es.comp.lenguajes.c ###

int hexa;
scanf("%[ABCDEF1234567890]x",&hexa);

Si eso no te sirve, tendrás que crearte tú mismo
una función que haga lo que quieres.
Post by baldo 4 R
void main(void) { int kk; resetrs(1);
while(1) {scanf("%x",&kk);printf(" %x ",kk);}
}
parece que funciona hasta que meto la pata y pongo letra mala.
ejemplo 2G.
¿alguna rutinilla o funcion que recoja y filtre a hexa?
--
JGauss

@ RedHat Linux 9 - Kernel 2.4.22-DellP3-2 - KNode: 0.7.2 @

---
Si quieres ganar un adepto para tu causa, convéncelo primero de que
eres su amigo sincero.
Lincoln, Abraham
Fernando Arbeiza
2003-11-10 15:53:39 UTC
Permalink
Hola:

On Mon, 10 Nov 2003 00:17:34 +0100, baldo 4 R
Post by baldo 4 R
void main(void) { int kk; resetrs(1);
while(1) {scanf("%x",&kk);printf(" %x ",kk);}
}
parece que funciona hasta que meto la pata y pongo letra mala. ejemplo 2G.
Como scanf encuentra algo que no es lo que espera, lo deja en el flujo
de entrada. Cuando vuelve a leer en el siguiente bucle _vuelve_ a estar
ahí el dato erróneo y vuelve a dejarlo; luego entra en un bucle
infinito.

Mi consejo es que utilices fgets() primero, y strtol() después.

Un saludo.
--
Fernando Arbeiza <URL: mailto:***@ono.com>
Crea tu propio Linux: <URL: http://www.escomposlinux.org/lfs-es>
Loading...