Lo dicho. Esta función no es portable. En windows habría que usar cls en vez de clear.
 
Luego hay otros que dicen de usar clrscr() o algo así, incluido en la librería conio.h, pero el problema es que no es standard y linux no traga por ahí. 
También he leido acerca de versiones chapuzas de meter algo como   
pero el caso es que estoy buscando una solución elegante y portable al programa. 
Gracias.