Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fernandoprog1 en 16 Junio 2015, 17:15 pm



Título: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: fernandoprog1 en 16 Junio 2015, 17:15 pm
Necesito hacer un programa que ingresando una palabra por teclado esa palabra se mueva nose ni como empezar, si alguien sabe algo para leer o me puede ayudar mostrándome el código lo agradecería.


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: banwave_ en 16 Junio 2015, 17:36 pm
Que tanto sabes programar? para saber por donde empezar, puedes pedir que introduzcan la palabra y con un get la asignas a variable, despues se me ocurre que hagas una matriz para ubicar las coordenadas de la pantalla y luego solo imprimes esa palabra en las diferentes coordenadas (limpias, imprimes, etc), creo que seria una idea de realizar lo que necesitas. Si estas programando en Windows, utiliza gotoxy, un ejemplo:

Código
  1. #include <conio.h>
  2.  
  3. int main() \{
  4.   clrscr();
  5.   cprintf( "Ejemplo de \"gotoxy\"\r\n\r\n" );
  6.   cprintf( "1ª línea" );
  7.   cprintf( "2ª línea" );
  8.   gotoxy( 5, 20 );
  9.   cprintf( "3ª línea" );
  10.   gotoxy( 20, 1 );
  11.   cprintf( "4ª línea" );
  12.   gotoxy( 1, 15 );
  13.   cprintf( "Pulsa una tecla para continuar...\r\n" );
  14.   getch();
  15.  
  16.   return 0;
  17. }

Mod: Los códigos deben ir en GeSHi


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: engel lex en 16 Junio 2015, 18:01 pm
no se debe usar conio... si estas en linux usa ncurses, si estas en windows, usa la api de control de consola (hay librerías y implementadas) pero esto es un ejemplo

Código
  1. #include <windows.h>
  2.  
  3. void gotoxy( int column, int line ) // sin conio, aplica identico
  4.  {
  5.  COORD coord;
  6.  coord.X = column;
  7.  coord.Y = line;
  8.  SetConsoleCursorPosition(
  9.    GetStdHandle( STD_OUTPUT_HANDLE ),
  10.    coord
  11.    );
  12.  }
  13.  


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: banwave_ en 16 Junio 2015, 18:23 pm
En Linux como seria? ya que nunca habia realizado algo asi  ;D Gracias!.

--- MOD: Ya me puse a investigar gracias por el tip! :)


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: fernandoprog1 en 16 Junio 2015, 21:14 pm
estoy usando c para programar y el programa codeblock, todavía no programe con cprintf ni use gotoxy,  que otra manera ahí para poder hacer el el programa
Código
  1. #include <conio.h>
  2. int main() \
  3. {
  4.  
  5.   clrscr();
  6.  
  7. cprintf( "Ejemplo de \"gotoxy\"\r\n\r\n" );
  8.  
  9.  cprintf( "1ª línea" );
  10.  
  11.  cprintf( "2ª línea" );
  12.  
  13.  gotoxy( 5, 20 );
  14.  
  15. cprintf( "3ª línea" );
  16.  
  17. gotoxy( 20, 1 );
  18.  
  19. cprintf( "4ª línea" );
  20.  
  21.  gotoxy( 1, 15 );
  22.  
  23. cprintf( "Pulsa una tecla para continuar...\r\n" );
  24.  
  25. getch();
  26.  
  27.  
  28.  
  29.  return 0;
  30. }


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: engel lex en 16 Junio 2015, 22:05 pm
fernandoprog1 hombre pero es que tu no lees -.-

Citar
no se debe usar conio...
porque no es standard... no todos los compiladores lo tienen, si te da mensajes de error muestralos exactamente...

te sirvirvió mi solucion?


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: fernandoprog1 en 17 Junio 2015, 22:51 pm
este código el problema que tiene a la hora de ser compilado es clrscr(); nose por que me tira ese error y el otro código el que pusiste vos engel lex no lo comprendo todavía no llege a ese nivel del lenguaje por eso pedia algo mas sencillo

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5.  
  6. {
  7.  
  8.  
  9.  
  10.  clrscr();
  11.  
  12.  
  13. printf( "Ejemplo de \"gotoxy\"\r\n\r\n" );
  14.  
  15.  
  16.  
  17. printf( "1ª línea" );
  18.  
  19.  
  20.  printf( "2ª línea" );
  21.  
  22.  
  23. gotoxy( 5, 20 );
  24.  
  25.  
  26. printf( "3ª línea" );
  27.  
  28.  
  29.  
  30. gotoxy( 20, 1 );
  31.  
  32.  
  33.  
  34. printf( "4ª línea" );
  35.  
  36.  
  37.  
  38.  gotoxy( 1, 15 );
  39.  
  40.  
  41. printf( "Pulsa una tecla para continuar...\r\n" );
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  return 0;
  49.  
  50. }
  51.  


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: fernandoprog1 en 17 Junio 2015, 22:53 pm
engel lex no entiendo este código le falta los printf ? lo puedo hacer compilar en c++?
Código
  1. #include <windows.h>
  2.  
  3.  
  4.  
  5. void gotoxy( int column, int line ) // sin conio, aplica identico
  6.  {
  7.  
  8. COORD coord;
  9.  
  10.  coord.X = column;
  11.  coord.Y = line;
  12.  SetConsoleCursorPosition(
  13.  
  14.   GetStdHandle( STD_OUTPUT_HANDLE ),
  15.  
  16.    coord
  17.  
  18.   );
  19.  
  20. }
  21.  


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: 0xFer en 17 Junio 2015, 23:05 pm
El clrscr() es una función de conio.h, cambia eso por system("cls");


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: fernandoprog1 en 18 Junio 2015, 15:57 pm
lo compilo en c y en c++ con codeblock y no me lo compila me tira error en include Windows y con conio, como lo soluciono ?

Código
  1. #include <iostream> //usar cout
  2.  
  3. #include <conio>    //usar getch ()
  4.  
  5. #include <windows>  //usar la función sleep
  6.  
  7. int main ()
  8.  
  9. {
  10.  
  11. int i;
  12.  
  13. for (i==1; i<24; i++) //que inicie en la posición 1(ya sea x,y en este caso en y) y que al llegar a la posición 24 se detenga
  14.  
  15. { clrscr();gotoxy(32,i);cout<<"Hola";  //borropantalla y coloco texto sin dejar rastro del texto
  16.  
  17. Sleep(100);
  18. }return 0;
  19.  
  20. }
  21.  
  22.  


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: engel lex en 18 Junio 2015, 16:02 pm
Creó que deberías pasarte por un tutorial de c -.-

En tu último código clrscr y gotoxy no están definidos, lo que yo te pase fue la definición de gotoxy y lo que te dio 0xFer es la definición de clrsrc


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: fernandoprog1 en 19 Junio 2015, 17:55 pm
ya entendí a lo que te referias engel lex, descarge la librería conio para codeblock y anduve leyendo sobre ella , ahora no entiendo por que este programa no se puede compilar me tira error en cout, acaso ahí algo mal declarado ?

Código
  1. #include <iostream> //usar cout
  2. #include <conio2.h> //usar getch ()
  3. #include <windows.h> //usar la función sleep
  4.  
  5. int main ()
  6.  
  7. {
  8.  
  9. int i;
  10.  
  11. for (i==1; i<24; i++) //que inicie en la posición 1(ya sea x,y en este caso en y) y que al llegar a la posición 24 se detenga
  12.  
  13.  
  14.  
  15. { clrscr();
  16. gotoxy(32,i); //borropantalla y coloco texto sin dejar rastro del texto
  17.  
  18. cout<<"Hola";
  19.  
  20. Sleep(100);
  21.  
  22. return 0;
  23.  
  24. }
  25. }
  26.  


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: engel lex en 19 Junio 2015, 18:17 pm
No se debe usar conio -.- (especialmente, si esto es una tarea, posiblemente la pc de tu profesor no lo tenga y tu programa falle)

Aislado a ello, te falta el namespace std, no estás declarando el espacio de trabajo, o lo declaras, o usas std::cout


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: fernandoprog1 en 19 Junio 2015, 21:50 pm
tu engel lex estuve leyendo y por lo que lei es preferible usar std::cout que using namespace std; tu que opinas ?


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: fernandoprog1 en 19 Junio 2015, 22:26 pm
me sigue sin salir el hola mundo lo compilo y no me tira ningún erro y declare el namespace, cual es mi error ?

Código
  1. [/
  2. #include <iostream>
  3. //usar cout
  4.  
  5. #include <conio2.h> //usar getch ()
  6.  
  7. #include <windows.h>
  8.  
  9.  
  10. using namespace std;
  11.  
  12. int main()
  13. {
  14.  
  15.  
  16.  
  17. int i;
  18. for (i==1; i<24; i++) //que inicie en la posición 1(ya sea x,y en este caso en y) y que al llegar a la posición 24 se detenga.
  19.  
  20. { clrscr();
  21.  
  22. gotoxy(32,i); //borropantalla y coloco texto sin dejar rastro del texto
  23.  
  24.  
  25. cout <<"hola mundo"<<endl;
  26.  
  27.  
  28. Sleep(100);
  29.  
  30.  
  31. return 0;
  32.  
  33.  
  34.  
  35. }
  36.  
  37. }
  38.  


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: 0xFer en 20 Junio 2015, 00:09 am
Para darle un valor a una variable tienes que usar el operador de asignacion "=" tú estas usando el operador de comparación "==" para hacer la misma tarea.


Título: Re: realizar un programa que ingresando una palabra por teclado ella se mueva.
Publicado por: fernandoprog1 en 22 Junio 2015, 19:46 pm
0xFer  Gracias por tu ejemplo ya lo logre entender, me puse a leer un poco mas de c para poder entenderlo, Gracias !!!  :D