Certe c'est simple à utiliser, et ça marche bien mais disons que ça n'est pas une instruction qui appartient au langage, ça n'est pas portable du tout, et absolument pas optimisé (il me semble que ça revient à créer un nouveau process cls.exe apres un passage par le command.com rien que pour faire le clear screen)...
L'ennui c'est qu'à ma connaissance le C++ ne fournit aucune fonction pour effectuer cette opération pourtant toute simple en apparence, il faut passer par les outils de l'os.
Si ton systeme supporte ansi tu peux utiliser printf( "\33[2J" ); (il me semble). Mais sous 2000/XP ça ne marchera pas (il faut ansi.sys de chargé dans le config.sys)
Avant il y avait aussi clrscr(); (défini dans conio.h), mais ça ne marche plus non plus et en plus c'est du Borland à la con.
Apres il y a la solution (à la con) du gotoxy(1,1) et de remplir l'écran d'espaces.
Il y a un moyen de faire ça en passant par les APIs Windows (bon je te l'accorde question portabilité ça va pas être le top non plus ), mais tout ce dont je me souviens au sujet de ce qu'il faut taper pour ça c'est que... c'est long
Si tu n'y fais pas appel toutes les 30 secondes reste avec ton cls, mais c'est vraiment pas élégant comme méthode (comme tout ce qui passe par system()).