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

时间:2012-03-22 21:56:41

标签: 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>

这是ram.cpp

#include <iostream>

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

编辑:

我将代码更新为

#include <iostream>
using namespace std;

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

仍然出现此错误

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

3 个答案:

答案 0 :(得分:9)

编译器告诉你原因:

  

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

您不使用.h。只需使用

#include <iostream>

A long winded explanation with a lot of background can be found here.

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

#include <iostream>

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

cout位于std命名空间中。

如果经常输入std::变得很麻烦,那么您可以像这样导入整个文件的类型:

using std::cout;

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

using namespace std;

答案 1 :(得分:5)

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

答案 2 :(得分:1)

正确的代码应该是

#include <iostream>

int main()
{
    std::cout << "Hello World!" << std::endl;
    return 0;
}

无论在2003年之前写过什么书,都不知道这一点。 把它扔掉在此期间,世界已经移动到其他地方了!