• Viernes 8 de Noviembre de 2024, 18:47

Autor Tema:  Algo como clrscr o system("cls") que me sirva para win y Lin  (Leído 2974 veces)

Claudisimo

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Algo como clrscr o system("cls") que me sirva para win y Lin
« en: Jueves 12 de Noviembre de 2009, 05:47 »
0
Bueno, esa es mi duda. Existe alguna forma de generar un clrscr o system("cls") para que me limpie la pantalla y que funcione tanto en Windows como en Linux?

Es que en el laboratorio de la universidad hay pc's con windows, y a mi en mi casa me gusta usar Archlinux, y a veces es una lata andar cambiando uno por otro cada vez que estoy en x lado.

Bueno, si es que existe, claro, o si hay alguna forma de programarlo (de que la hay, la hay, pero mis conocimientos son bastante limitados).

Luis_Gomez

  • Nuevo Miembro
  • *
  • Mensajes: 4
  • Nacionalidad: es
    • Ver Perfil
Re: Algo como clrscr o system("cls") que me sirva para win y Lin
« Respuesta #1 en: Jueves 12 de Noviembre de 2009, 09:28 »
0
En MS-DOS se usa cls para limpiar la pantalla.
En Linux, si mal recuerdo, se usa clear.

¿Podría usarse la instrucción system("clear") para ese fin?

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Algo como clrscr o system("cls") que me sirva para win y Lin
« Respuesta #2 en: Jueves 12 de Noviembre de 2009, 16:26 »
0
si es solo para eso, podrias usar un define

Código: C++
  1.  
  2. #ifdef WINDOWS
  3. [codigo win]
  4. #else
  5. [codigo lin]
  6. #endif
  7.  
  8.  

pero solo haz esto si es UNA UNICA instruccion la que cambia, siempre es mejor hacerlo bien multiplataforma.
Si no, mirate el patron FACTORY en google.

Claudisimo

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Algo como clrscr o system("cls") que me sirva para win y Lin
« Respuesta #3 en: Jueves 12 de Noviembre de 2009, 18:17 »
0
Cita de: "diego.martinez"
si es solo para eso, podrias usar un define

Código: C++
  1.  
  2. #ifdef WINDOWS
  3. [codigo win]
  4. #else
  5. [codigo lin]
  6. #endif
  7.  
  8.  

pero solo haz esto si es UNA UNICA instruccion la que cambia, siempre es mejor hacerlo bien multiplataforma.
Si no, mirate el patron FACTORY en google.
Gracias, me funcionó muy bien.

Tuve que escribirlo así

Código: C++
  1. #ifdef WIN32
  2. #define system(clear) system("cls")
  3. #endif
  4.  

Después de poner esto al principio, solo uso system("clear") para limpiar la pantalla (lo que me pareció extraño, porque compilandolo desde windows tuve que dejar, al lado del define, system(clear) en vez de system("clear").

memmaker650

  • Nuevo Miembro
  • *
  • Mensajes: 18
  • Nacionalidad: es
    • Ver Perfil
Re: Algo como clrscr o system("cls") que me sirva para win y Lin
« Respuesta #4 en: Viernes 27 de Noviembre de 2009, 12:15 »
0
Cita de: "diego.martinez"
si es solo para eso, podrias usar un define

Código: C++
  1.  
  2. #ifdef WINDOWS
  3. [codigo win]
  4. #else
  5. [codigo lin]
  6. #endif
  7.  
  8.  

pero solo haz esto si es UNA UNICA instruccion la que cambia, siempre es mejor hacerlo bien multiplataforma.
Si no, mirate el patron FACTORY en google.
El código que comentas es muy interesante, pero no entiendo porque sólo se puede usar para una sola instrucción. Si por ejemplo quisieramos hacer pongamos un bucle de una manera para windows y de otra para linux porque en este último hay una isntrucción más optimizada como lo podría hacer.

Gracias por la solución y la referencia de código.