Programación General > C/C++

 Algo como clrscr o system("cls") que me sirva para win y Lin

(1/1)

Claudisimo:
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:
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:
si es solo para eso, podrias usar un define


--- Código: C++ --- #ifdef WINDOWS[codigo win]#else[codigo lin]#endif  
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:

--- Cita de: "diego.martinez" ---si es solo para eso, podrias usar un define


--- Código: C++ --- #ifdef WINDOWS[codigo win]#else[codigo lin]#endif  
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.
--- Fin de la cita ---
Gracias, me funcionó muy bien.

Tuve que escribirlo así


--- Código: C++ ---#ifdef WIN32#define system(clear) system("cls")#endif 
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:

--- Cita de: "diego.martinez" ---si es solo para eso, podrias usar un define


--- Código: C++ --- #ifdef WINDOWS[codigo win]#else[codigo lin]#endif  
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.
--- Fin de la cita ---
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.

Navegación

[0] Índice de Mensajes

Ir a la versión completa