我尝试用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
答案 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年之前写过什么书,都不知道这一点。 把它扔掉在此期间,世界已经移动到其他地方了!