来自简单的Visual C ++项目的编译器错误

时间:2009-07-06 23:19:05

标签: c++ visual-studio-2008

我正在尝试让程序运行。当我在win32项目/ .cpp文件中尝试Hello World时,我收到了大量错误

1> ------ Build build:Project:HelloWorld3,配置:Debug Win32 ------ 1个GT;编译... 1 GT; HELLO.CPP 1> ... \ projects \ helloworld3 \ helloworld3 \ hello.cpp(7):错误C2065:'cout':未声明的标识符 1> ... \ projects \ helloworld3 \ helloworld3 \ hello.cpp(7):错误C2001:常量中的换行符 1> ... \ projects \ helloworld3 \ helloworld3 \ hello.cpp(8):错误C2143:语法错误:缺少';'在'返回'之前 1>构建日志保存在“file:/ ... \ Projects \ HelloWorld3 \ HelloWorld3 \ Debug \ BuildLog.htm”中 1> HelloWorld3 - 3个错误,0个警告

#include <iostream>

int main()
{


cout <<"Hello World!<<endl;
return 0;
}

5 个答案:

答案 0 :(得分:2)

cout位于名称空间“std”中,因此您有两个选项:

  1. 使用std

    作为前缀

    std :: cout&lt;&lt; “Hello World”&lt;&lt;的std :: ENDL;

  2. 声明您正在使用 namespace std

    使用namespace std;

答案 1 :(得分:2)

  

1&gt; ... \ projects \ helloworld3 \ helloworld3 \ hello.cpp(7):错误C2065:'cout':未声明的标识符

这说的是它不知道cout是什么。在C ++中,名称可以在名称空间中。在cout的情况下,它位于命名空间std中。您可以通过两种方式告诉编译器:

  • 使用行using namespace std;,它告诉编译器将命名空间std中的所有名称都引入当前名称。
  • 使用范围解析运算符::。在std::cout中,您在这里告诉编译器确切地找到名称的位置。
  

1&gt; ... \ projects \ helloworld3 \ helloworld3 \ hello.cpp(7):错误C2001:常量中的换行符

这个错误说编译器正在查看一个常量,在这种情况下是一个字符串,它找到了一个新行,它没有预料到的那个。这几乎总是一个缺失的最终报价。

#include <iostream>

int main()
{
    std::cout << "Hello World!" << std::endl;
    return 0;
}

答案 2 :(得分:1)

您需要使用std::coutstd::endl而不是coutendl,或者在#include之后执行此操作:

using namespace std;

using子句使您的代码更简洁,但在大型程序中,很难跟踪名称的来源,因此最好使用更详细但更明确的std::cout / std::endl

你也错过了一个结束语:

cout <<"Hello World!<<endl;

你应该:

cout << "Hello World!" << endl;

答案 3 :(得分:1)

ee1234。看到这可能是你的第一个C ++程序,看看CPlusPlus.com它有一个非常简单和基本的教程。这正是我第一次跳入c ++时开始的地方。就好书而言,只需在SO上搜索“C ++书籍”,你应该有很多好的帖子谈论适当的初学者 - >高级书籍。

答案 4 :(得分:0)

由于cout存在于标准命名空间中,因此您应该包含

using namespace std;

在代码的开头,在您的包含下,或在每个函数调用前使用std ::。 在为字符串放置开头报价时,您应该始终包含结束报价。这导致

std::cout << "Hello World!" << std::endl;

另一种写这个的方法是:

std::cout << "Hello World!\n";

\ n会产生换行符。