我从这里下载了Code::Blocks:http://www.codeblocks.org/downloads/26
我正在学习c编程。当我运行以下程序时,出现错误:
iostream: No such file or directory
error: syntax error before "namespace"
warning: type defaults to `int' in declaration of `std'
warning: data definition has no type or storage class
In function `main':
error: `cout' undeclared (first use in this function)
error: (Each undeclared identifier is reported only once
error: for each function it appears in.)
error: `cin' undeclared (first use in this function)
我正在运行以下程序:
#include <iostream>
using namespace std;
int main()
{
int x;
x = 0;
do {
// "Hello, world!" is printed at least one time
// even though the condition is false
cout<<"Hello, world!n";
} while ( x != 0 );
cin.get();
}
我尝试了 Dev-C++,但出现同样的错误。如何解决这个问题?
这是在像"program.c"或"program.cpp"这样的文件中吗? 如果它是一个 .c 文件,则编译器可能会将其解释为 C,而不是C++。 这很容易导致此类错误。 可以"强制"编译器将其中一个扩展名视为另一个扩展名,但默认情况下,.c 文件适用于 C,.cpp文件编译为 C++。
要么是这个,要么是标准库的默认"include"目录设置不正确,但我不知道您将如何解决这个问题,因为这将取决于编译器/环境。
我在尝试在Code::Blocks中运行我的第一个程序时也遇到了这个问题。我的文件以".c"扩展名保存为"test.c",当我将其保存为"test.cpp"时,它工作正常。
还值得一提的是,在成功编译新的"test.cpp"文件之前,我必须重新启动Code::Blocks。
在编译前保存源代码时,只需使用扩展名".cpp"保存名称即可。您不会收到错误。
我遇到了同样的问题。
更改 #include
因此,在您的程序中,将与iostream相关的每个关键字(例如cin cout和endl)更改为std::cout,std::cin和std::endl
那会解决问题
使用 <iostream>
而不是 <iostream.h>
并在cout
、cin
等之前添加std::
使用std::cout << "Welcome";
而不是cout << "Welcome";
保存扩展名为.cpp
的文件
您在 Codeblocks/devc++ 中的 mingw 目录文件夹中缺少 iostream.h 文件。 您所要做的就是从下面给出的链接下载文件,并在 Codeblocks/devc++ 中替换为您之前的 mingw 文件夹。
http://www.4shared.com/rar/owp-D0Km/mingw.html
我发现问题是由Perl安装中以前版本的cgg和cpp引起的。Perl 结构没有正确的库文件。当我将C:MinGWbin
和C:MinGWMSYS1.0bin
添加到路径时,我在最后添加了它们,因此它首先选择了Perl安装。我将路径变量条目移动到开头并重新打开我的cmd窗口,它现在可以工作了,因为它首先找到MinGW版本。
键入 path 以查看路径环境可变。我的现在看起来像:
C:MinGW>path
PATH=C:MinGWbin;C:MinGWMSYS1.0bin;C:Perlsitebin;C:Perlbin;C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;C:Program FilesWIDCOMMBluetoothSoftware;
显然你想创建一个 c++ 文件。 但是您允许计算机自动提供文件扩展名 C/C++。 当它这样做时,它会自动提供".c"的文件扩展名。 这不是巧合。 你想要".cpp"。
解决方案:使用".cpp"扩展名重命名文件,或者在保存新文件时通过在预期的文件名后加上".cpp"(当然没有引号)来明确说明您的扩展名;即指定您的文件扩展名。
我在 Dev-C++ 中尝试过。代替iostream.h使用iostream也写使用命名空间std;
#include<iostream>
using namespace std;
int main()
{
cout<<"Hello Worldn";
return 0;
}
你用C++代码编写程序,使用C代码,然后你的程序可以正常运行
在第一行使用它
#include <Io stream.h>
main ()
{
在结束行中使用它
system (pause");
你想做一个C游戏对吗?如果你是你的代码是C++而不是C。因此,如果你想做一个C游戏,你应该改变你的代码。这可能会有所帮助。
只需在main()之前加上"Using namespace std;"即可定义您正在使用的标识符的范围。这将轻松处理您的问题。
尝试包含iostream.h
而不是iostream
。