为什么这个程序不起作用?

0 c++ compiler-errors

我尝试用C++做一个简单的hello世界,因为我将在大约一周内在学校使用它.为什么我不能正确编译?

c:\Users\user\Desktop>cl ram.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

ram.cpp
ram.cpp(1) : fatal error C1083: Cannot open include file: 'iostream.h': No such
file or directory

c:\Users\user\Desktop>
Run Code Online (Sandbox Code Playgroud)

这是ram.cpp

#include <iostream>

int main()
{
    cout << "Hello World!";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:

我将我的代码更新为

#include <iostream>
using namespace std;

int main(void)
{
    cout << "Hello World!";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

仍然会收到此错误

ram.cpp
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xlocale(323) : wa
rning C4530: C++ exception handler used, but unwind semantics are not enabled. S
pecify /EHsc
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:ram.exe
ram.obj
Run Code Online (Sandbox Code Playgroud)

Ed *_* S. 9

编译器告诉你原因:

ram.cpp(1):致命错误C1083:无法打开包含文件:'iostream.h':没有这样的文件或目录

你没有使用.h.只是用

#include <iostream>
Run Code Online (Sandbox Code Playgroud)

可以在这里找到一个有很多背景的冗长的解释.

根据您的评论,您需要购买一本新书.你的过时是如此可悲,甚至没有提到名称空间!要使您的程序正常运行,请尝试以下操作

#include <iostream>

int main()
{
    std::cout << "Hello World!";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

cout住在std命名空间中.

如果std::经常输入很麻烦,那么你可以为整个文件导入一个类型,如下所示:

using std::cout;
Run Code Online (Sandbox Code Playgroud)

现在你可以改写cout.您也可以导入整个命名空间,但这通常是不好的做法,因为您将整个事物拉入全局命名空间,并且您可能会遇到冲突.但是,如果您知道这不是问题(例如,在一次性应用程序或小实用程序中),那么您可以使用此行:

using namespace std;
Run Code Online (Sandbox Code Playgroud)


Ker*_* SB 5

它不叫"iostream.h",它从来没有.使用#include <iostream>.

  • 在ISO之前,很多旧书使用这些标题. (3认同)