【问题标题】:Code::Blocks/ Dev-c++: error: iostream: No such file or directory代码::Blocks/ Dev-c++: 错误: iostream: 没有这样的文件或目录
【发布时间】:2012-05-03 11:43:06
【问题描述】:

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

【问题讨论】:

  • 如果你想学 C,那就快换学习材料吧,因为那是 C++
  • 嗯,您显示的代码是 C++,而不是 C,所以我猜您正在尝试将它们编译为 C,这就是它失败的原因。

标签: c++ dev-c++


【解决方案1】:

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

要么是这个,要么是您的标准库的默认“包含”目录设置不正确,但我不知道您将如何解决这个问题,因为这取决于编译器/环境。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      在编译前保存源代码时,只需保存扩展名为“.cpp”的名称。你不会得到错误..

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题。

        更改#include 到#incude

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

        这样就可以了

        【讨论】:

          【解决方案5】:

          使用&lt;iostream&gt; 而不是&lt;iostream.h&gt; 并在coutcin等之前添加std::

          使用std::cout &lt;&lt; "Welcome";
          而不是cout &lt;&lt; "Welcome";

          .cpp 扩展名保存文件

          【讨论】:

            【解决方案6】:

            您在代码块/devc++ 中的 mingw 目录文件夹中缺少 iostream.h 文件。你所要做的就是从下面给出的链接下载文件,并用你以前在 codeblocks/devc++ 中的 mingw 文件夹替换。

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

            【讨论】:

              【解决方案7】:

              我发现问题是由于在 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\;
              

              【讨论】:

                【解决方案8】:

                显然你想创建一个 c++ 文件。但是您允许您的计算机自动提供文件扩展名 C/C++。当它这样做时,它会自动提供“.c”的文件扩展名。这不正确。你想要“.cpp”。

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

                【讨论】:

                  【解决方案9】:

                  我在 Dev-C++ 中尝试过。代替 iostream.h 使用 iostream 还写 using namespace std;

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

                  【讨论】:

                    【解决方案10】:

                    您用 C++ 代码编写程序,使用 c 代码,然后您的程序可以正常运行

                    在第一行使用它

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

                    在最后一行使用它

                    system (pause");
                    

                    【讨论】:

                      【解决方案11】:

                      您正在尝试制作 C 游戏,对吗?如果您是您的代码是 C++ 而不是 C。因此,如果您正在尝试制作 C 游戏,那么您应该更改代码。这可能有帮助。

                      【讨论】:

                        【解决方案12】:

                        只需输入“使用命名空间标准;”在 main() 之前定义您正在使用的标识符的范围。这将轻松解决您的问题。

                        【讨论】:

                        • 问题代码中已经有。在适当的情况下,甚至。
                        【解决方案13】:

                        尝试包含iostream.h 而不是iostream

                        【讨论】:

                        • 不,不要那样做。 iostream.h 太老了。 &lt;iostream&gt; 是 C++ 代码应该包含的内容。
                        猜你喜欢
                        • 2014-06-26
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2018-09-15
                        • 2012-02-26
                        相关资源
                        最近更新 更多