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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda --- ! marquesina en c++ a c ! --- ayuda
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda --- ! marquesina en c++ a c ! --- ayuda  (Leído 4,304 veces)
EduardoSaenz

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Ayuda --- ! marquesina en c++ a c ! --- ayuda
« en: 8 Mayo 2016, 21:52 pm »

Código escrito en C++, se crea el efecto de Marquesina desplazándose de izquierda a derecha y viceversa.

Código
  1. #include <iostream>
  2. #include <conio>
  3. #include <windows>
  4. #include <stdio>
  5.  
  6. main ()
  7. {
  8. int a=0, b=56, c=0, n=0;
  9. char t[25] ="Bienvenido a Borland C++";
  10. do
  11. {
  12. for (a=1;a<=56;a++)
  13. {
  14. clrscr ();
  15. gotoxy(a,1);
  16. cout<<t;
  17. Sleep (50);
  18. }
  19. for (b=56;b>=1;b--)
  20. {
  21. clrscr ();
  22. gotoxy(b,1);
  23. cout<<t;
  24. Sleep (50);
  25. }
  26. }while (c=1);
  27. getch ();
  28. }

Alguien que me pueda ayudar a traducir este mismo codigo y con el mismo efecto pero en codigo C para usarlo en el programa Dev C++ lo necesito para un proyecto, se lo agradecería mucho

MOD EDIT: Titulo y codigo modificado.


« Última modificación: 8 Mayo 2016, 22:49 pm por MCKSys Argentina » En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda --- ! marquesina en c++ a c ! --- ayuda
« Respuesta #1 en: 8 Mayo 2016, 23:07 pm »

Si no me equivoco Dev-C++ tiene conio.h así que si modificas las lineas
Código
  1. cout<<t
por
Código
  1. printf("%s", t);
debe funcionar.


En línea

EduardoSaenz

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Ayuda --- ! marquesina en c++ a c ! --- ayuda
« Respuesta #2 en: 9 Mayo 2016, 01:40 am »

Gracias MAFUS si me sirvio!

me quedo de esta forma:


#include <conio.c>
#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main ()
{
   char banner[]={"Este es un ejemplo de banner"};
   unsigned short derecha, izquierda, repite, longitud;
   
   longitud=strlen(banner);
   
   for (repite=1; repite<=3; repite++)
   {
      for (derecha=1; derecha<=longitud; derecha++)
      {
         gotoxy(derecha,1);
         printf("\b ");
         printf("%s",banner);
         usleep(100000);
      }
         for (izquierda=longitud; izquierda>=1; izquierda--)
         {
            printf("\b ");
            gotoxy(izquierda,1);
            printf("%s",banner);
            usleep(100000);
         }
   }            
            

   return 0;
}

ya se deplaza de izquierda a derecha las tres veces que quiero pero ahora solo me falta una cosa por ejemplo cuando empieza desplazandose de izquierda a derecha y topa en la derecha debe salir como si estuviera escondiendose y luego entrar de derecha a izquierda y hacer lo mismo y viceversa pero no se como hacer eso
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: Ayuda --- ! marquesina en c++ a c ! --- ayuda
« Respuesta #3 en: 10 Mayo 2016, 01:13 am »

Debes saber cuantas columnas tiene esa consola y eso no es estandar que yo sepa.
En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Ayuda --- ! marquesina en c++ a c ! --- ayuda
« Respuesta #4 en: 10 Mayo 2016, 09:58 am »

salvo que esté muy errado las consolas tienen un máximo de 80 y cuando lo pasas con printf se imprime en la fila siguiente, asi que vas a la derecha y cuando el último caracter llega a 80 debe ser borrado (por ejemplo) y así con todos. 
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda --- ! marquesina en c++ a c ! --- ayuda
« Respuesta #5 en: 10 Mayo 2016, 11:01 am »

Debes tener en cuenta dos casos diferentes. Cuándo estés al principio de tu marquesina y cuándo te encuentres en el final.
Como sabrás cuándo le des una cadena a printf, éste se pone a escribir lo que le des hasta que encuentre un carácter de fin de cadena '\0', así si tienes la cadena ABCDEF
Código
  1. printf("%s", cadena+0);
obtienes ABCDEF
en cambio, si escribes
Código
  1. printf("%s", cadena+3);
obtienes DEF. Recuerda que cadena es un puntero y puedes usar la aritmética de punteros.
Esto te sirve para el inicio de la marquesina.

Ahora para el final de la marquesina printf tiene unos especificadores de formato que te pueden ser útiles, como el de precisión, que no solo funcionan con los números.
Si tienes la anterior cadena ABCDEF y te interesa solo coger los tres primeros caracteres puedes usar
Código
  1. printf("%.3s", cadena);
y obtienes ABC
Ese 3 es literal y no hay forma de cambiarlo a no ser que cambies la cadena de formato. Pero los diseñadores de printf, que son muy listos, han hecho posible que nosotros, los pobres usuarios, tengamos una forma de escribir cuántos caracteres queremos. Mediante el carácter * podemos usar un argumento de printf para dar un tamaño.
Si escribimos printf así
Código
  1. printf("%.*s", tam, cadena);
Si tam=3 entonces obtenemos CAD.

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
marquesina « 1 2 »
Diseño Gráfico
lucaprodan 10 10,105 Último mensaje 4 Junio 2007, 17:45 pm
por Azielito
[Perl] Funcion marquesina()
Scripting
BigBear 0 1,672 Último mensaje 30 Septiembre 2012, 04:06 am
por BigBear
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines