Discussion:
Como digito texto en modo gráfico
(demasiado antiguo para responder)
rocafc
2005-01-23 20:38:05 UTC
Permalink
Hola:

Soy principiante en esto de la programación asi que disculpen si la
respuesta a mi duda es muy obvia. Resulta que necesito digitar un
valor en modo gráfico, es decir quiero que cuando digite alguna frase
o numero mediante teclado aparezca como texto en el modo gráfico y no
en el modo texto, algo asi como:

#include <stdio.h>
#include <graphics.h>

main(){
int gdriver,gmodo;
int valor;

detectgraph(&gdriver,&gmodo);
initgraph(&gdriver,&gmodo,"C:\\bc31\\bgi");
outtext("Digite el valor que desea mostrar: ");
scanf("%d",&valor);/*Quiero que el valor que digite salga en pantalla
en modo gráfico y no en modo texto y luego mostrarlo de igual forma*/

Espero que alguien me ayude. Saludos

Roberto C. Fandiño C.
Carlos
2005-01-24 00:38:21 UTC
Permalink
Post by rocafc
Soy principiante en esto de la programación asi que disculpen si la
respuesta a mi duda es muy obvia. Resulta que necesito digitar un
valor en modo gráfico, es decir quiero que cuando digite alguna frase
o numero mediante teclado aparezca como texto en el modo gráfico y no
en el modo texto,
Vas a tener que hacer tu propia rutina que dibuje la pantalla a medida que
el usuario teclea, y vaya guardando el texto. Quizás ya haya algo así en la
biblioteca estándar del BC (?). Si no, acá hay algo para que te inspires o
copies: <http://www.programmersheaven.com/zone3/cat35/36511.htm>.

Suerte.
Antoine Leca
2005-01-24 15:54:00 UTC
Permalink
disculpen si la respuesta a mi duda es muy obvia.
No, la respuesta no es obvia.
#include <stdio.h>
#include <graphics.h>
Aquí radica tu problema.

<stdio.h>, bién, la mayoría de las funciones, interactúan con "la consola de
textos". Por eso cuando estas en el scanf, cambia la pantalla de gráficos
para la de textos.

Entonces, lo que debes hacer es partir la acción de scanf en dos, de una
parte coger las tecladas (sin usar ningunas de las funciones de <stdio.h>),
y de otra parte convertir lo en un número.

Lo primero lo puedes hacer con getch() de <conio.h>. Coge solo un cáracter,
así que deberás hacerlo en una bucle para obtener una cadena. Ponle un '\0'
al final, cuando se presiona algo que no es un digito por ejemplo
(!isdigit(c)).

Lo segundo se puede hacer con sscanf(), peró creo que es más facil con
strtol() o incluso atoi().


Animo.


Antoine

Loading...