107 votes

Pourquoi un programme de type "Hello World" ne se compile-t-il pas avec Turbo C ++?

J'ai commencé à apprendre le C ++ pour mon cours de programmation. J'ai téléchargé ce programme "Hello World":

 #include <iostream>
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?

168voto

n.m. Points 30344

Il n'y a pas de problème avec ce programme. (À l'exception sans doute de certains stylistique - using namespace std n'est pas recommandé). Le problème, c'est avec Turbo C++. C'est un très vieux morceau de logiciel. Il met en œuvre un dialecte du langage C++, soi-disant pré-ANSI C++, qui a complètement tombé hors d'usage par le début de ce millénaire. La première norme ANSI pour le C++ a été publié en 1998, puis il y avait la version de 2003, la version 2011, la 2014 version, 2017 version, et maintenant nous attendons la version 2020 pour être officiellement publié. Chacun de ces standards mis plus ou moins de changements importants à la langue.

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

#include <iostream.h>      // 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 C++ moderne dialecte et celui qui est accepté par Turbo C++ peut sembler petit. Cependant, il va croître beaucoup plus grande que vos programmes seront de plus en plus complexes.

Alors que vous pouvez apprendre la programmation en Turbo C++ je vous recommande fortement pour éviter que si humainement possible en raison des problèmes suivants:

  1. Vous serez l'apprentissage d'une langue est quelque peu semblable à une langue populaire, utilisé dans l'industrie, mais il est très différent néanmoins, pour aucune bonne raison. Si vous prévoyez de C++ pour un réel développement de logiciels, vous devrez ré-apprendre beaucoup de choses. Il est beaucoup plus facile d'apprendre le C++ moderne tout de suite.
  2. Il n'y a pas de littérature existante sur Turbo C++. Près de 100% de C++ que vous trouverez sur internet ou dans les livres n'est pas directement applicable à Turbo C++ hors de la boîte. Certains n'ont besoin que d'adaptations mineures, tandis que les autres matières est complètement inutilisable. À peu près la seule source d'aide disponible immédiatement, pour vous, c'est le haut-Turbo C++ aider.
  3. Peu de gens se souviennent de Turbo C++. Quand vous posez des questions sur les forums, toujours de préciser que vous êtes à l'aide d'un pré-ANSI dialecte afin de filtrer les réponses orientées vers la version moderne de la langue. Vous obtiendrez probablement un tas de commentaires suggérant vous arrêter tout de suite et passer à un compilateur moderne avec à chaque question que vous posez.

Il y a beaucoup de moderne gratuit (comme dans la bière, ainsi que dans les discours) des compilateurs et des IDEs, vous pouvez utiliser à la place de Turbo C++. Certains de ces comprennent:

  1. Visual C++ Community Edition est un IDE et un compilateur de Microsoft
  2. Code::Blocks est un léger IDE. Sur Windows, il est livré avec un peu obsolète compilateur, mais vous pouvez en installer un plus moderne de compilateur vous-même
  3. Eclipse CDT est un puissant outil de croix-plate-forme de l'IDE. Il n'a pas été livré avec son propre compilateur, si vous avez besoin d'installer un compilateur. Sur Windows, utiliser, par exemple, MinGW.
  4. Beaucoup plus de
  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/, en plus de beaucoup plus (ce sont surtout bons pour essayer de nouvelles idées et de l'écriture, les très petits programmes).
  6. Les deux Clang/LLVM et GCC sont des logiciels libres compilateurs soutenir les récentes versions de C++.

Malheureusement, certaines écoles/enseignants semblent forcer les élèves à utiliser le Turbo C++, même dans cette journée et l'âge. Malheureusement, ce n'est pas quelque chose de cette communauté peut fixer. Si vous vous trouvez dans cette situation, se préparer pour ne pas être en mesure d'obtenir beaucoup d'aide de l'extérieur.

14voto

Lundin Points 21616

"Turbo C++" peut signifier de nombreux compilateurs. Quand vous posez cette question, il est important d'inclure le numéro de version.

  • Borland Turbo C++ jusqu'à la version 3.1 étaient pures MS DOS compilateurs dans le classique fond bleu IDE. Ces ont été libérés à peu près quelque part entre 1989 à 1992, longtemps avant que le C++ était devenu standardisée, qui est arrivé dans l'année 1998. Et donc, ils ont utilisé un pré-dialecte standard de C++.

    Plus particulièrement, ils ont utilisé l' #include <iostream.h> de la syntaxe plutôt que la norme #include <iostream>, mais aussi de ne pas aborder tout un tas de fonctionnalités C++ tels que les espaces de noms, des modèles, etc. Le modèle de la bibliothèque STL ne faisait pas partie de la norme, de sorte que tout ce qui est lié à cette bibliothèque était assez différent de ce qui plus tard est devenu la norme.

  • Plus tard, dans les années 90, Borland a diffusé plusieurs DOS/Windows compilateurs avec une meilleure conformité. Jusqu'à la version 5 quelque part, ils ont toujours lutté avec une totale conformité à C++98, bien que ces versions de Windows étaient assez proches.

  • À la fin des années 90, ils ont abandonné le nom de "Turbo C++" en faveur de Borland C++ Builder, ce qui n'était pas juste une IDE, mais un RAD outil basé sur Delphi. Ces compilateurs ont été entièrement compatible avec le C++98 et, plus tard, C++03.

  • Autour de 2005, Borland a chuté de compilateurs dans le cadre de leur ligne de produits. Les compilateurs est devenu "Codegear", qui devint plus tard l'Embarcadero. Quelque part autour de l'époque, ils ont sorti une version gratuite de Borland Builder, qu'ils ont nommée "Turbo C++". Cette version a été totalement conforme aux C++03.

  • Aujourd'hui, ces compilateurs sont appelés Embarcadero C++ Builder. Je crois qu'ils ont actuellement en charge jusqu'à C++11 avec certains C++14. Plus d'infos ici.

Inutile de dire que, en tant qu'étudiant, vous ne devriez pas utiliser quoi que ce soit mais les compilateurs modernes. À l'aide de MS DOS compilateurs de 1991 lors de l'apprentissage de C++ dans l'année 2018 est tout simplement de la folie. Il est non seulement contre-productif, il est directement nocifs et fera de vous un mauvais programmeur C++. Si votre école est de vous forcer à utiliser le Turbo C++ 3.1 ou plus, alors votre école est mauvaise et que vos professeurs sont gravement incompétents. Svp le lien de ce post pour eux et leur principal.

6voto

Yougansh Thakur Points 172

Turbo C ++ est un très vieux compilateur 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 à iostream.h
2. Et supprimez la ligne "using namespace std". Elle n’est pas requise dans Turbo C ++. Voici le code modifié:

 #include <iostream.h>

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X