首先我要说的是,我以前从未做过原始的C ++编码。我在预制引擎中使用了基于C语言,所以我在一般意义上理解语法是如何工作的。
我知道每个脚本都需要一个头文件来声明大多数基本函数才能正常运行,而对于C ++,这个头文件将是iostream。我的问题是一般的“Hello world”问题。我已经浏览了几天但从未找到合适的解决方案,我的情况似乎与其他任何人一样。这是我的剧本。
#include <iostream.h>
using namespace std;
int main(){
cout<< "Hey" << ;
return 0 ;
}
所以是的。这应该适当编译。但问题来自第一行,即#include。
以下是我在尝试构建时收到的错误消息:
1>------ Build started: Project: compiler test, Configuration: Debug Win32 ------
1>Compiler test.cpp
1>Compiler test.cpp(1): fatal error C1083: Cannot open include file: 'iostream.h': No such
file or directory
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
这通常会告诉我标题不在正确的目录中,但是当我检查/ VC / include目录时,iostream就是坐在那里。几乎看起来Visual C ++拒绝承认它存在。任何人都有解决方案吗?
答案 0 :(得分:5)
首先要尝试的是#include <iostream>
C ++标题中没有.h
答案 1 :(得分:0)
(a) - 在提问时请包含您正在使用的操作系统和编译器。平台之间的行为不同,有时,在编译器的版本之间也是如此。看看消息的外观,看起来编译器是Microsoft的Visual C ++版本。
(b)一般用法是在没有.h的标题周围使用带有.h和尖括号(&lt;&gt;)的头文件的“(引号)”。注意这是一个< em> general 用法。管理这两种语言(C和C ++)的标准实际上是统治的。他们说它是“implimentation-defined”(请参阅此relevant StackOverflow question以获得令人难以忍受的细节)。两种用法都会引入提供所请求功能的函数头,常量和代码。在MS C ++下,iostream头提供了与cout,cin,clog和cerr函数的链接,以及equivelant宽字符流函数wcout,wcin,wclog和wcerr(“宽字符” “广泛地说,支持是一种容纳常见ASCII或EBCDIC世界之外的字符表示的方法。”
(3)一旦头文件被引入,Sean指出,你会在“嘿”声明中得到一个错误,因为尾随的“&lt;&lt;&lt;”期待anothjer操作数,或者是另一个字符串或某种变量(“endl”用于关闭你构建并显示它的输出字符串。这有时也被称为“刷新缓冲区。”)< / p>
(4)如果你仔细查看答案/问题数据库,你会发现一些关于使用“using namespace std”的热烈讨论,而不是指定你想要使用的命名空间中每个函数的用法。例如“使用std :: cout;”
我在下面添加了一个最低限度重写的程序版本(甚至显示你可以用引号包围iostream #include,这应该会引发一场小小的火焰战争):
c:\gpp_code>type text3.cpp
#include "iostream"
using namespace std;
int main()
{
cout<< "Hey" << endl ;
return 0 ;
}
c:\gpp_code>text3
Hey
c:\gpp_code>