elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  PROGRAMACION EN C CON WINBGIM
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PROGRAMACION EN C CON WINBGIM  (Leído 7,310 veces)
anonime

Desconectado Desconectado

Mensajes: 3


Ver Perfil
PROGRAMACION EN C CON WINBGIM
« en: 29 Agosto 2011, 12:22 pm »

hola, queria hacer una consulta sobre hacer un programa de gestión con winbgim.
La cosa es que ya hice 2 juegos hace tiempo con esta libreria y stdio y stdlib, y no tube problemas pero no encuentro el código. Y no se si es que tengo alzeimer o que, pero tengo un problema con el flujo de entrada.

Para mostrar una cadena con winbgim es outtextxy(int,int,char); ok ?
y para guardar una cadena introducida por el usuario en una variable ? y luego
mostrar esa variable ?
Hay alguna funcion en winbgim para ello ?
por que si utilizo scanf(), o gets() se me cuelga.

si utilizo por ejemplo:

char x[20];

outtextxy(200,200,"introduce tu nombre: ");
x[]=getch(); // o getche o getchar o incluso strcpy(x,getch());

siempre se me cuelga, no encuentro la manera de introducir datos por usuario
y es algo vital para el programa que quiero hacer.

Bueno gracias de antemano y un saludo.



 


En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: PROGRAMACION EN C CON WINBGIM
« Respuesta #1 en: 31 Agosto 2011, 04:05 am »

tu problema es al no definir el índice...

Código
  1. char x[20];
  2. int i=0;
  3.  
  4. outtextxy(200,200,"introduce tu nombre: ");
  5. for(;;){
  6.  char c=getch();
  7.  if(c==13)//enter
  8.    break;
  9.  x[i++]=c;
  10. }

S2


En línea

anonime

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: PROGRAMACION EN C CON WINBGIM
« Respuesta #2 en: 2 Septiembre 2011, 01:00 am »

Gracias por responder!

lo que no entiendo es que si outtextxy el tercercampo es para cadena...
Por que no me deja y se me cuelga haciendo esto por ejemplo:

char x[20];

gets(x); o scanf("%s",x);

outextxy(200,200,x);


??? >:D
En línea

LearningSpanishProgrammer

Desconectado Desconectado

Mensajes: 67


Ver Perfil
Re: PROGRAMACION EN C CON WINBGIM
« Respuesta #3 en: 2 Septiembre 2011, 01:51 am »

Hola!

No entiendo, el único problema en su codigo es que el scanf no comproba el tamano del buffer. Si tu cadena es mayor que veinte enton lo programa debe alertar (crash)
En línea

Estoy aprendiendo español, y tu estas aprendiendo programación
Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: PROGRAMACION EN C CON WINBGIM
« Respuesta #4 en: 2 Septiembre 2011, 03:53 am »

lo que no entiendo es que si outtextxy el tercercampo es para cadena...
Por que no me deja y se me cuelga haciendo esto por ejemplo:

fijate un ejemplo que tengo de cuando usé esa librería:

Código
  1. //Obtener Números
  2. gprintf(90, 220,"Ingrese número:");
  3. do{
  4.  clearline(185,180);
  5.  t=getnum(185,180);
  6.  if(t<Xmin||t>Xmax)
  7.    showerror();
  8. }while(t0<Xmin||t0>Xmax);
  9. //.....
  10. double getnum(int x,int y){
  11.  char tmp[256],*pt;
  12.  int val,inc=0;
  13.  double ret=0;
  14.  pt=tmp;*pt=0;
  15.  val=getch();
  16.  while(val!=13){
  17.    if(val>47&&val<58||val=='.'||(val=='-'&&!inc)){
  18.      *(pt++)=(char)val;
  19.      gprintf(x+inc,y,"%c",val);
  20.      inc+=10;
  21.    }
  22.    if(val==8){
  23.      if(pt!=tmp){
  24.        inc-=10;
  25.        gprintf(x+inc,y,"  ");
  26.        *(--pt)=0;
  27.      }
  28.    }
  29.    val=getch();
  30.  }
  31.  *pt=0;
  32.  if(sscanf(tmp,"%lf",&ret))
  33.  return ret;
  34. }

S2
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines