Code :: Blocks / Dev-c ++:错误:iostream:没有这样的文件或目录

时间:2012-04-22 18:23:53

标签: c++ dev-c++

我从这里下载了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 ++,我得到了同样的错误。 如何解决这个问题?

谢谢, 萨拉

12 个答案:

答案 0 :(得分:9)

这是在“program.c”或“program.cpp”这样的文件中吗?如果它是.c文件,那么您的编译器可能会将其解释为C,而不是C ++。这很容易导致这样的错误。可以“强制”编译器将此类扩展视为另一个扩展,但默认情况下,.c文件用于C,而.cpp文件编译为C ++。

它或者是这个,或者某种程度上你的标准库的默认“包含”目录没有正确设置,但是我不知道你是如何修复它的,因为它依赖于编译器/环境。

答案 1 :(得分:4)

尝试在Code :: Blocks中运行我的第一个程序时,我也遇到了这个问题。我的文件以'.c'扩展名保存为'test.c',当我将其保存为'test.cpp'时,它运行正常。

值得一提的是,在新的'test.cpp'文件编译成功之前,我必须重启Code :: Blocks

答案 2 :(得分:2)

在编译前保存源代码,只需使用扩展名&#34; .cpp&#34;保存名称。你不会得到错误..

答案 3 :(得分:1)

使用<iostream>代替<iostream.h> 并在std::cout

之前添加cin

使用std::cout << "Welcome";
而不是cout << "Welcome";

使用.cpp扩展名

保存文件

答案 4 :(得分:0)

我遇到了同样的问题。

更改#include&lt; iostream.h&gt; 到#incude&lt; iostream&gt;

因此,在您的程序中,更改与iostream相关的每个关键字,例如cin cout和endl到std :: cout,std :: cin和std :: endl

那就是诀窍

答案 5 :(得分:0)

您在mingw目录文件夹中放置了iostream.h文件,该文件放在codeblocks / devc ++中。你要做的就是从下面给出的链接下载文件,并用codeblocks / devc ++中你以前的mingw文件夹替换。

http://www.4shared.com/rar/owp-D0Km/mingw.html

答案 6 :(得分:0)

我发现问题是因为在Perl安装中使用了以前版本的cgg和cpp。 Perl结构没有正确的库文件。当我将C:\MinGW\binC:\MinGW\MSYS\1.0\bin添加到路径中时,我在最后添加了它们,因此它首先选择了Perl安装。我将路径变量条目移动到开头并重新打开我的cmd窗口,它现在可以工作,因为它首先找到MinGW版本。

键入路径以查看路径环境变量。我现在看起来像:

C:\MinGW>path
PATH=C:\MinGW\bin;C:\MinGW\MSYS\1.0\bin;C:\Perl\site\bin;C:\Perl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\BluetoothSoftware\;

答案 7 :(得分:0)

显然您要创建一个c ++文件。但是您允许计算机自动提供文件扩展名C / C ++。这样做时,它将自动提供“ .c”文件扩展名。这不是核心。您需要“ .cpp”。

解决方案:使用“ .cpp”扩展名重命名文件,或者在保存新文件时通过在预期文件名后加上“ .cpp”(当然不带引号)来明确说明扩展名;即指定您的文件扩展名。

答案 8 :(得分:0)

我在Dev-C ++中尝试过。代替iostream.h使用iostream,还要编写using名称空间std;

#include<iostream>
using namespace std;
int main()
 {
   cout<<"Hello World\n";
   return 0;
 }

答案 9 :(得分:-1)

你用C ++代码编写你的程序使用c代码然后你的程序正确运行

在第一行使用它

#include <Io stream.h>
main ()
{

在结束行中使用它

system (pause");

答案 10 :(得分:-2)

只需输入&#34;使用命名空间std;&#34;在main()之前定义您正在使用的标识符的范围。这将很容易解决您的问题。

答案 11 :(得分:-4)

尝试添加iostream.h代替iostream