system cls o clear

Iniciado por 7emiliosk8, 14 Febrero 2017, 23:12 PM

0 Miembros y 1 Visitante están viendo este tema.

7emiliosk8

Hola tengo una duda, como sé cual función funcionará para windows o linux?  es decir, se supone que `system("cls")` funciona solo en windows, y la `system("clear")` solo en linux, pero como se sabe cual funciona en cual s.o ?, la única manera es probarlo? ejemplo la `system("color")` como se si funciona en linux? donde se puede buscar eso..

gracias de antemano

engel lex

El asunto es que "system" es equivalente a abrir una consola y escribir el comando, por eso no se recomienda más que para casos muy necesarios

En lugar de eso puedes imprimir 40 veces "\n" y listo
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MAFUS

Para saberlo deberás buscar las ordenes de cada shell. Después para usar system puedes usar el #ifdef para saber si se compila para Windows o Linux, en base a eso pones una orden u otra.

O puedes buscar librerías externas para que hagan el mismo trabajo. Mira que sean multiplataforma si vas a compilar para SS.OO. Pero te tocará teclear un poquito màs que tendrás que escribir toda la funcionalidad.

7emiliosk8

Cita de: MAFUS en 15 Febrero 2017, 11:27 AM
Para saberlo deberás buscar las ordenes de cada shell. Después para usar system puedes usar el #ifdef para saber si se compila para Windows o Linux, en base a eso pones una orden u otra.


Mafus, pero eso no lo entiendo muy bien, o sea se como funciona el ifdef, o sea defino una variable y si esta se encuentra definida se supone que se ejecutara ejemplo

#define PI 3,14

int main()
{
   #ifdef PI

    puts("Casa");
     #enifdef
}


ahi si se ejecutara el puts de casa, pero para que sea windows o linux , te refieres a algo asi ?

int main()

{

#ifdef WINDOWS
//Codigo de Windows
#endif

#ifdef LINUX
//Codigo de Linux
#endif

}


pero el compilador de todos modos como va a saber si es windows o linux :s ? como deberian ser las definiiciones arriba del main ? ,gracias por tu ayuda

NOB2014

Proba con esto ¿a ver si te funciona?

#include <stdlib.h>
#include <stdio.h>

void borrar( void );

int main( void ){
char a[] = "La casa de Bernarda Alba", *b = &a[10];

printf( "\n Programa que muestra como borrar terminal tanto en Linux como Windows.\n\n"
" Presione <Enter> para continuar...." );
getchar();
borrar();
printf("\n %s\n", b);

return 0;
}

void borrar( void ){
system("cls||clear");
}
Saludos.
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

MAFUS

Así es emilio. Aunque las constantes para linux y windows ya están definidas. Comprueba la documentación de tu compilador para saber como las nombra.