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
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
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.
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
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.
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.