Portabilité

Résolu
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009 - 25 sept. 2009 à 23:24
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009 - 26 sept. 2009 à 00:29
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

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
26 sept. 2009 à 00:16
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
3
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
26 sept. 2009 à 00:19
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
3
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
26 sept. 2009 à 00:29
Salut,
Merci beaucoup pour ta réponse! :D

Bonne soirée!
0
Rejoignez-nous