我已经开始在编程课上学习 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'
这个非常简单的程序有什么问题吗?我该如何纠正这些错误?
这个程序没有问题。 (可能除了一些风格问题——using namespace std
不推荐)。问题出在 Turbo C++ 上。这是一个非常古老的软件。它实现了 C++ 的方言,即所谓的ANSI C++ 之前的版本,到本世纪初就完全不再使用了。第一个 C++ ANSI 标准于 1998 年发布,随后有 2003 版本、2011 版本、2014 版本、2017 版本,现在我们预计 2020 版本将正式发布。这些标准修订中的每一个都或多或少地给语言带来了重大变化。
对于 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++ 学习编程,但我强烈建议您尽可能避免使用 Turbo C++,因为存在以下问题:
- 您将学习的语言与行业中使用的流行语言有些相似,但仍然非常不同,没有充分的理由。如果你打算编写 C++ 来进行真正的软件开发,你将不得不重新学习很多东西。立即学习现代 C++ 要容易得多。
- 没有关于 Turbo C++ 的现有文献。您在互联网或书籍中找到的几乎 100% 的 C++ 材料并不直接适用于开箱即用的 Turbo C++。有些材料只需要进行轻微的调整,而其他材料则完全无法使用。几乎唯一可以立即使用的帮助来源是内置的 Turbo C++ 帮助。
- 很少有人记得 Turbo C++。在论坛上提问时,请务必注明您使用的是 ANSI 之前的方言,以便过滤掉针对该语言现代版本的回复。您可能会收到一堆评论,建议您立即停止并针对您提出的每个问题切换到现代编译器。
有许多现代免费的(如beer https://en.wikipedia.org/wiki/Freeware,以及在speech https://en.wikipedia.org/wiki/Free_software) 可以用来代替 Turbo C++ 的编译器和 IDE。其中一些包括:
-
Visual C++ 社区版 https://www.visualstudio.com/vs/community/是 Microsoft 的 IDE 和编译器
-
代码::块 http://www.codeblocks.org/是一个轻量级的IDE。在 Windows 上,它附带了一个有点过时的编译器,但您可以自己安装更现代的编译器
-
日食CDT https://www.eclipse.org/cdt/是一个功能强大的跨平台IDE。它没有附带自己的编译器,因此您需要安装单独的编译器。在 Windows 上,使用例如MinGW http://www.mingw.org/.
- 还有很多 https://www.tecmint.com/best-linux-ide-editors-source-code-editors/
- 另外,还有很多在线编译器,例如http://ideone.com http://ideone.com, https://www.onlinegdb.com/ https://www.onlinegdb.com/ and http://coliru.stacked-crooked.com/ http://coliru.stacked-crooked.com/, plus 还有很多 https://www.google.com/search?q=online+c%2B%2B+compiler(这些大多适合尝试想法和编写非常小的程序)。
- Both 铿锵/LLVM http://clang.llvm.org/ and GCC http://gcc.gnu.org/ are 自由软件 https://en.wikipedia.org/wiki/Free_software支持最新版本的 C++ 的编译器。
遗憾的是,即使在当今时代,一些学校/老师似乎也强迫学生使用 Turbo C++。不幸的是,这不是这个社区可以解决的问题。如果您发现自己处于这种情况,请做好无法获得太多外部帮助的准备。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)