6

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

4

13 回答 13

13

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

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

于 2012-04-22T19:04:47.420 回答
6

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

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

于 2013-05-25T06:09:35.833 回答
2

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

于 2015-11-09T09:03:36.407 回答
1

使用<iostream>代替和<iostream.h> 添加std::之前coutcin

使用 std::cout << "Welcome";
代替 cout << "Welcome";

保存带有.cpp扩展名的文件

于 2015-04-17T20:08:02.297 回答
1

我遇到了同样的问题。

将 #include <iostream.h> 更改为 #incude <iostream>

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

这样就行了

于 2014-04-21T10:39:54.347 回答
0

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

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

于 2014-06-03T14:47:49.580 回答
0

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

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

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\;
于 2015-03-12T09:38:10.357 回答
0

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

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

于 2018-07-06T21:58:39.007 回答
0

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

#include<iostream>
using namespace std;
int main()
 {
   cout<<"Hello World\n";
   return 0;
 }
于 2020-04-09T05:28:28.770 回答
-1

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

在第一行使用它

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

在结束行使用它

system (pause");
于 2013-11-23T02:18:07.000 回答
-2

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

于 2016-04-13T22:37:28.450 回答
-2

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

于 2017-06-30T04:55:35.593 回答
-4

尝试包括iostream.h而不是iostream.

于 2012-04-22T18:26:11.620 回答