Почему простая программа в стиле «Hello World» не компилируется с Turbo C ++?

Я начал изучать C ++ для своего класса программирования. Я скачал эту программу «Hello World»:

#include <iostream>
using namespace std;

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

но Turbo C ++ жалуется:

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'

Что не так с этой очень простой программой? Как я могу исправить эти ошибки?

95

Решение

Там нет проблем с этой программой. (За исключением, вероятно, некоторых стилистических вопросов —
using namespace std не рекомендуется). Проблема с Turbo C ++. Это очень старая часть программного обеспечения. Он реализует диалект C ++, так называемый до ANSI C ++, это полностью вышло из употребления к началу этого тысячелетия. Первый стандарт ANSI для C ++ был опубликован в 1998 году, затем была версия 2003 года, версия 2011 года, версия 2014 года, и теперь мы ожидаем, что версия 2017 года будет официально опубликована. Каждая из этих стандартных версий внесла более или менее значительные изменения в язык.

Для Turbo C ++ вы должны изменить программу следующим образом:

#include <iostream.h>      // note the .h suffix
// using namespace std;    // Turbo C++ doesn't implement namespaces

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

Если вы посмотрите на эту программу, разница между современным диалектом C ++ и тем, который принят в Turbo C ++, может показаться небольшой. Однако он станет намного больше, поскольку ваши программы будут становиться все более сложными.

Хотя вы можете изучать программирование с использованием Turbo C ++, я настоятельно рекомендую избегать этого, если это возможно, из-за следующих проблем:

  1. Вы будете изучать язык, который в некоторой степени похож на популярный язык, используемый в отрасли, но, тем не менее, совершенно другой, без веской причины. Если вы планируете C ++ для реальной разработки программного обеспечения, вам придется многому научиться заново. Гораздо проще освоить современный C ++.
  2. До сих пор нет литературы о Turbo C ++. Почти 100% материалов C ++, которые вы найдете в Интернете или в книгах, не имеют прямого отношения к Turbo C ++ из коробки. Некоторым потребуется лишь незначительная адаптация, в то время как другие материалы совершенно непригодны. Практически единственный доступный вам источник помощи — это встроенная справка Turbo C ++.
  3. Мало кто помнит Turbo C ++. Задавая вопросы на форумах, всегда указывайте, что вы используете пре-ANSI диалект, чтобы отфильтровать ответы, ориентированные на современную версию языка. Вы, вероятно, получите кучу комментариев, предлагающих вам немедленно остановиться и переключаться на современный компилятор с каждым вопросом, который вы задаете.

Есть много современных бесплатных (как в пиво, а также в речь) компиляторы и IDE, которые вы можете использовать вместо Turbo C ++. Некоторые из них включают в себя:

  1. Visual C ++ Community Edition это IDE и компилятор от Microsoft
  2. Code :: Blocks это легкий IDE. В Windows он поставляется с несколько устаревшим компилятором, но вы можете установить более современный компилятор самостоятельно
  3. Eclipse CDT это мощная кроссплатформенная IDE. Он не поставляется с собственным компилятором, поэтому вам нужно установить отдельный компилятор. В Windows используйте, например, MinGW.
  4. Многое другое
  5. Кроме того, есть много онлайн-компиляторов, таких как http://ideone.com, https://www.onlinegdb.com/ а также http://coliru.stacked-crooked.com/, плюс многое другое (они в основном хороши для опробования идей и написания очень маленьких программ).
  6. И то и другое Clang / LLVM а также НКУ являются бесплатно программное обеспечение компиляторы, поддерживающие последние версии C ++.

К сожалению, некоторые школы / учителя вынуждают учащихся использовать Turbo C ++ даже в наши дни. К сожалению, это не то, что может исправить это сообщество. Если вы окажетесь в такой ситуации, приготовьтесь к тому, что вы не сможете получить много посторонней помощи.

150

Другие решения

«Turbo C ++» может означать множество компиляторов. Задавая этот вопрос, важно указать номер версии.

  • Borland Turbo C ++ до версии 3.1 были чистыми компиляторами MS DOS в классической IDE на синем фоне. Они были выпущены где-то между 1989 и 1992 годами, задолго до того, как C ++ стал стандартизированным, что произошло в 1998 году. И поэтому они использовали предстандартный диалект C ++.

    В частности, они использовали #include <iostream.h> синтаксис, а не стандартный #include <iostream>, но также не охватывал все возможности C ++, такие как пространства имен, шаблоны и т. д. Библиотека шаблонов STL еще не была частью стандарта, поэтому все, что связано с этой библиотекой, довольно сильно отличалось от того, что позже стало стандартом.

  • Позже, в 90-х, Borland выпустила несколько компиляторов DOS / Windows с лучшей совместимостью. До версии 5 где-то они все еще боролись с полным соответствием C ++ 98, хотя эти версии Windows были довольно близки к этому.

  • В конце 90-х они отказались от названия «Turbo C ++» в пользу Borland C ++ Builder, который был не просто IDE, но и полноценным инструментом RAD, основанным на Delphi. Эти компиляторы были полностью совместимы с C ++ 98 и позже C ++ 03.

  • Примерно в 2005 году Borland отказалась от компиляторов как части своей линейки продуктов. Компиляторы стали «Codegear», который позже стал Embarcadero. Где-то в то время они выпустили бесплатную версию Borland Builder, которую назвали «Turbo C ++». Эта версия полностью соответствовала C ++ 03.

  • В настоящее время эти компиляторы называются Embarcadero C ++ Builder. Я считаю, что в настоящее время они поддерживают до C ++ 11 с некоторыми C ++ 14. Больше информации здесь.

Излишне говорить, что, будучи студентом, вы не должны использовать ничего, кроме современных компиляторов. Использование компиляторов MS DOS с 1991 года при изучении C ++ в 2018 году — просто безумие. Это не только непродуктивно, но и вредно и сделает вас плохим программистом на C ++. Если ваша школа вынуждает вас использовать Turbo C ++ 3.1 или старше, то ваша школа плохая, а ваши учителя крайне некомпетентны. Пожалуйста, свяжите этот пост с ними и их директором.

8

Turbo C ++ — очень старый компилятор, и он немного отличается от компилятора GNU C ++. Код, которым вы поделились, будет отлично работать с компилятором GNU, но чтобы запустить его с Turbo C ++, вам нужно внести несколько изменений:

1. Измените имя файла заголовка с iostream в iostream.h

2. И убрать строку «используя пространство имен std». Это не требуется в Turbo C ++.
Вот модифицированный код:

#include <iostream.h>

int main()
{
cout << "Hello, World!";
return 0;
}
5
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector