Portabilité [Résolu]

Signaler
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009
-
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009
-
Bonjour, j'ai réalisé un petit programme sur l'algorithme d'Euclide. Jusque là tout va bien.
Cependant, j'ai un probleme de portabilité windows/linux et je ne sais pas comment le résoudre.

Il s'agit de pouvoir effacer la console. Je procede comme ceci :
 #if PLATFORM == LINUX
                system("clear");
        #endif
        #if PLATFORM == WINDOWS
                system("cls");
        #endif

Cependant, bien que ce code ne rencontre pas de probleme a la compilation, les deux instructions sont executées quelque soit l'OS utilisé.
Comment dois-je faire?

Merci ! :)

3 réponses

Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
120
Tu ne peux pas faire cela, tout simplement.
La méthode pour vérifier la plateforme, peut s'apparenter à ceci:

#if _WIN32
  // Win32 et Win64
  system("cls");
#elif __WIN32__
  // Borland C++
  system("cls");
#elif __TOS_WIN_
  // xIC
  system("cls");
#elif __WINDOWS__
  // WATCOM C/C++
  system("cls");
#else
  // The others. (UNIX for example)
  system("clear");
#endif
Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
120
Mettre #ifdef au lieu de #if, j'ai été un peu vite.
Pour les plateformes supportées, tout est ici:
http://predef.sourceforge.net/preos.html
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

Salut,
Merci beaucoup pour ta réponse! :D

Bonne soirée!