C ++:无法解析标识符cout,Netbeans,Ubuntu

时间:2012-02-18 04:02:54

标签: c++ netbeans ubuntu-11.04 cout

我在Ubuntu 11.04上的Netbeans 7.1上使用C ++。出于某种原因,以下代码会导致错误消息"无法解析标识符cout"。

#include <iostream>

using namespace std;
int main()
{
    std::cout << "Hello,world!\n";
    return 0;
}

非常感谢任何解决此问题的帮助。

8 个答案:

答案 0 :(得分:3)

你的问题的解决方案至少很奇怪;) 一旦添加了iostream头,就必须重新解析代码。单击项目右键,转到代码帮助,然后单击以重新分析项目。为我工作。 我正在使用netbeans for mac。

答案 1 :(得分:1)

检查iostream是否真的被包含在内; 我已经在我的机器上使用eclipse cdt尝试了你的代码它工作正常。所以,请检查 包括

答案 2 :(得分:1)

这是什么类型的文件?它是.h文件还是.hpp文件?我有同样的问题。 Netbeans有时候用C ++会很荒谬。对我来说,我将#include <iostream>更改为#include<iostream.h>

答案 3 :(得分:1)

这似乎太简单了,但是......

在我的NetBeans安装中,当我创建一个新项目时,指定C / C ++,它会弹出一个对话框,提示“项目名称:”,位置,文件夹,makefile名称,然后...  “创建主文件”复选框,填写了“主”的编辑框,右侧是一个读取“C”的下拉列表。如果你点击完成,这将创建“main.c”(C,但不是C ++文件)。而是在下拉列表中选择“C ++”。然后IDE创建main.cpp,它将使用g ++编译,并将找到那些包含和函数。

答案 4 :(得分:1)

std :: cout和cout之间有区别。您当前没有在文件中定义std :: cout。 std :: cout是c标准输出。在C ++中,我们只需要cout即可与iostream一起使用。

如果必须使用标准输出,请执行以下操作:

将此添加到iostream下的顶部

#include <iostream> //Input output stream in C++
#include <cstdlib> //Stands for c standard library
using namespace std; 

您的代码现在可以工作,因为: 此更改定义了std :: cout和std :: cin等。 (分别为标准输入,标准输出。)

但是,如果您不需要标准输入输出,我建议您使用以下替代方法: 用cout替换std :: cout,因为cout在C ++中的iostream中定义。您的程序在没有cin cout命令的std ::部分的情况下可以正常工作,因为您最初包含了iostream。

答案 5 :(得分:0)

尝试取出using namespace std; - 它通常被视为不良形式: - )

我不确定这会解决问题,但大多数人使用命名空间或完全限定std::cout之类的内容。我从来没有见过两者的代码。

要检查的另一件事是iostream标题 正在购买。换句话说,该行是否有任何错误。很多问题(至少在Windows世界中,所以它可能不一定适用于您)似乎是由于NetBeans中的错误路径设置。

答案 6 :(得分:0)

嘿,看看您的输出调试。您可能会看到“没有权限”。在将“ / YourProjekt / dist / Debug / GNU-Linux / file”的文件权限更改为可运行后,每个人都可以读写错误消失了。 (顺便说一句,我有这个错误,因为我的Projekt是在NTFS系统上,它必须是ext分区) 希望我能帮助您。

答案 7 :(得分:-1)

尝试取出cout旁边的std ::