Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: anonime en 29 Agosto 2011, 12:22 PM

Título: PROGRAMACION EN C CON WINBGIM
Publicado por: anonime 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.



Título: Re: PROGRAMACION EN C CON WINBGIM
Publicado por: Karman en 31 Agosto 2011, 04:05 AM
tu problema es al no definir el índice...

char x[20];
int i=0;

outtextxy(200,200,"introduce tu nombre: ");
for(;;){
  char c=getch();
  if(c==13)//enter
    break;
  x[i++]=c;
}


S2
Título: Re: PROGRAMACION EN C CON WINBGIM
Publicado por: anonime 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
Título: Re: PROGRAMACION EN C CON WINBGIM
Publicado por: LearningSpanishProgrammer 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)
Título: Re: PROGRAMACION EN C CON WINBGIM
Publicado por: Karman en 2 Septiembre 2011, 03:53 AM
Cita de: anonime en  2 Septiembre 2011, 01:00 AMlo 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:

//Obtener Números
gprintf(90, 220,"Ingrese número:");
do{
  clearline(185,180);
  t=getnum(185,180);
  if(t<Xmin||t>Xmax)
    showerror();
}while(t0<Xmin||t0>Xmax);
//.....
double getnum(int x,int y){
  char tmp[256],*pt;
  int val,inc=0;
  double ret=0;
  pt=tmp;*pt=0;
  val=getch();
  while(val!=13){
    if(val>47&&val<58||val=='.'||(val=='-'&&!inc)){
      *(pt++)=(char)val;
      gprintf(x+inc,y,"%c",val);
      inc+=10;
    }
    if(val==8){
      if(pt!=tmp){
        inc-=10;
        gprintf(x+inc,y,"  ");
        *(--pt)=0;
      }
    }
    val=getch();
  }
  *pt=0;
  if(sscanf(tmp,"%lf",&ret))
  return ret;
}


S2