Pourquoi un programme simple de style «Hello World» ne comstack-t-il pas avec Turbo C ++?

J’ai commencé à apprendre C ++ pour ma classe de programmation. J’ai téléchargé ce programme “Hello World”:

#include  using namespace std; int main() { cout << "Hello, World!"; return 0; } 

mais Turbo C ++ se plaint:

 Error D:\HELLO.CPP 1: Unable to open include file 'IOSTREAM' Error D:\HELLO.CPP 2: Declaration syntax error Error D:\HELLO.CPP 6: Undefined symbol 'cout' 

Quel est le problème avec ce programme très simple? Comment puis-je corriger ces erreurs?

    Il n’y a pas de problème avec ce programme. (Sauf probablement quelques problèmes de style – using namespace std n’est pas recommandé). Le problème est avec Turbo C ++. C’est un très vieux logiciel. Il implémente un dialecte de C ++, appelé pré-ANSI C ++ , qui a complètement disparu au début de ce millénaire. La première norme ANSI pour C ++ a été publiée en 1998, puis il y a eu la version 2003, la version 2011, la version 2014, et nous prévoyons maintenant que la version 2017 sera officiellement publiée. Chacune de ces révisions standard a apporté des modifications plus ou moins importantes au langage.

    Pour Turbo C ++, vous devez modifier le programme comme ceci:

     #include  // note the .h suffix // using namespace std; // Turbo C++ doesn't implement namespaces int main() { cout < < "Hello, World!"; return 0; } 

    Si vous regardez ce programme, la différence entre le dialecte C ++ moderne et celui accepté par Turbo C ++ peut sembler minime. Cependant, il deviendra beaucoup plus important à mesure que vos programmes deviendront plus complexes.

    Bien que vous puissiez apprendre à programmer avec Turbo C ++, je vous recommande fortement d’éviter cela si cela est humainement possible à cause des problèmes suivants:

    1. Vous apprendrez une langue qui ressemble quelque peu à un langage populaire utilisé dans l'indussortinge, mais qui est très différente, sans raison valable. Si vous envisagez de C ++ pour le développement de logiciels réels, vous devrez réapprendre beaucoup. Il est beaucoup plus facile d'apprendre tout de suite le C ++ moderne.
    2. Il n'y a pas de littérature existante sur Turbo C ++. Près de 100% du matériel C ++ que vous trouverez sur Internet ou dans les livres ne sont pas directement applicables à Turbo C ++. Certains ne nécessiteront qu'une adaptation mineure, tandis que d'autres sont totalement inutilisables. La seule source d’aide immédiatement disponible est l’aide Turbo C ++ intégrée.
    3. Peu de gens se souviennent de Turbo C ++. Lorsque vous posez des questions sur des forums, spécifiez toujours que vous utilisez un dialecte pré-ANSI afin de filtrer les réponses adaptées à la version moderne de la langue. Vous obtiendrez probablement un tas de commentaires vous suggérant de vous arrêter immédiatement et de passer à un compilateur moderne avec chaque question que vous posez.

    Il existe de nombreux compilateurs et IDE modernes gratuits (comme dans la bière ou la parole ) que vous pouvez utiliser à la place de Turbo C ++. Certains d'entre eux comprennent:

    1. Visual C ++ Community Edition est un IDE et un compilateur de Microsoft
    2. Code :: Blocks est un IDE léger. Sous Windows, il est livré avec un compilateur quelque peu obsolète, mais vous pouvez installer vous-même un compilateur plus moderne.
    3. Eclipse CDT est un puissant IDE multi-plateforme. Il ne fournit pas son propre compilateur, vous devez donc installer un compilateur distinct. Sous Windows, utilisez par exemple MinGW .
    4. Beaucoup plus
    5. En outre, il existe de nombreux compilateurs en ligne tels que http://ideone.com , https://www.onlinegdb.com/ et http://coliru.stacked-crooked.com/ , ainsi que de nombreux autres (ceux-ci sont généralement bons pour essayer des idées et écrire de très petits programmes).
    6. Clang / LLVM et GCC sont des compilateurs de logiciels libres prenant en charge les versions récentes de C ++.

    Malheureusement, certaines écoles / certains enseignants semblent obliger les élèves à utiliser Turbo C ++, même de nos jours. Malheureusement, cette communauté ne peut pas résoudre ce problème. Si vous vous trouvez dans cette situation, préparez-vous à ne pas pouvoir obtenir beaucoup d'aide extérieure.

    Turbo C ++ est un compilateur très ancien et il est un peu différent du compilateur GNU C ++. Le code que vous avez partagé fonctionnera parfaitement avec le compilateur GNU, mais pour l’exécuter avec Turbo C ++, vous devez apporter quelques modifications:

    1. Changez le nom du fichier d’en-tête de iostream en iostream.h
    2. Et supprimez la ligne “using namespace std” Elle n’est pas requirejse dans Turbo C ++. Voici le code modifié:

     #include  int main() { cout < < "Hello, World!"; return 0; } 

    “Turbo C ++” peut signifier de nombreux compilateurs. Lorsque vous posez cette question, il est important d’inclure le numéro de version.

    • Borland Turbo C ++ jusqu’à la version 3.1 étaient de purs compilateurs MS DOS dans l’EDI classique sur fond bleu. Ceux-ci ont été publiés à peu près entre 1989 et 1992, bien avant que le C ++ ne soit devenu standardisé, ce qui s’est produit en 1998. Ils utilisaient donc un dialecte pré-standard du C ++.

      Plus particulièrement, ils ont utilisé la syntaxe #include plutôt que la norme #include , mais ils ne couvraient pas beaucoup de fonctionnalités C ++ telles que les espaces de noms, les modèles, etc. la norme encore, donc tout ce qui concerne cette bibliothèque était assez différent de ce qui est devenu plus tard la norme.

    • Plus tard dans les années 90, Borland a publié plusieurs compilateurs DOS / Windows plus conformes. Jusqu’à la version 5, quelque part, ils avaient encore du mal à se conformer totalement à C ++ 98, bien que ces versions de Windows en soient assez proches.

    • Vers la fin des années 90, ils ont abandonné le nom “Turbo C ++” en faveur de Borland C ++ Builder, qui n’était pas simplement un IDE mais un outil RAD complet basé sur Delphi. Ces compilateurs étaient entièrement compatibles avec C ++ 98 et versions ultérieures C ++ 03.

    • Vers 2005, Borland a abandonné les compilateurs dans le cadre de sa gamme de produits. Les compilateurs devinrent “Codegear”, qui devint plus tard Embarcadero. Quelque part à l’époque, ils ont sorti une version gratuite de Borland Builder qu’ils ont nommée “Turbo C ++”. Cette version était totalement conforme à C ++ 03.

    • De nos jours, ces compilateurs s’appellent Embarcadero C ++ Builder. Je crois qu’ils supportent actuellement C ++ 11 avec des C ++ 14. Plus d’infos ici.

    Inutile de dire qu’en tant qu’étudiant, vous ne devez utiliser que des compilateurs modernes. Utiliser les compilateurs MS DOS à partir de 1991 lors de l’apprentissage du C ++ en 2018 est tout simplement une folie. Non seulement est-ce contre-productif, il est directement nuisible et fera de vous un mauvais programmeur C ++. Si votre école vous force à utiliser Turbo C ++ 3.1 ou plus ancien, votre école est mauvaise et vos enseignants sont très incompétents. S’il vous plaît lier ce post à eux et leur principal.