簡體   English   中英

來自簡單Visual C ++項目的編譯器錯誤

[英]Compiler errors from simple Visual C++ project

我正在嘗試使程序運行。 當我在win32 project / .cpp文件中嘗試Hello World時,出現一堆錯誤

1> ------構建開始:項目:HelloWorld3,配置:調試Win32 ------ 1>正在編譯... 1> 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>構建日志保存在“文件:/ ... \\ Projects \\ HelloWorld3 \\ HelloWorld3 \\ Debug \\ BuildLog.htm” 1> HelloWorld3-3個錯誤,0個警告

#include <iostream>

int main()
{


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

cout在名稱空間“ std”中,因此您有兩個選擇:

  1. 使用std作為前綴

    std :: cout <<“ Hello World” << std :: endl;

  2. 聲明您正在使用命名空間std

    使用名稱空間std;

1> ... \\ projects \\ helloworld3 \\ helloworld3 \\ hello.cpp(7):錯誤C2065:“ cout”:未聲明的標識符

這是說它不知道什么是cout。 在C ++中,名稱可以位於名稱空間中。 如果是cout,則位於名稱空間std中。 您可以通過兩種方式告訴編譯器:

  • using namespace std; 這告訴編譯器將名稱空間std中的所有名稱引入當前名稱。
  • 通過使用范圍解析運算符:: 就像在std::cout一樣,您在這里告訴編譯器確切的位置。

1> ... \\ projects \\ helloworld3 \\ helloworld3 \\ hello.cpp(7):錯誤C2001:常量中的換行符

該錯誤表明編譯器正在查看一個常量(在本例中為字符串),並且在不需要的地方找到了換行符。 這幾乎總是缺少結尾的報價。

#include <iostream>

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

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

using namespace std;

using子句使您的代碼更簡潔,但是在大型程序中,可能很難跟蹤名稱的來源,因此最好使用更詳細但更明確的std::cout / std::endl

您還缺少此處的結束語:

cout <<"Hello World!<<endl;

你應該有:

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

ee1234。 看到這很可能是您的第一個C ++程序,請訪問CPlusPlus.com,它具有非常簡單而基本的教程。 這就是我第一次跳入c ++時的起點。 就好書而言,只需在SO上搜索“ C ++書”就可以了,您應該有很多關於適當的初學者->高級書的好帖子。

由於cout存在於標准名稱空間中,因此您應該包括

using namespace std;

在代碼的開頭,在您的include下,或在每個函數調用前使用std ::。 在為字符串放置開頭引號時,還應始終包含結尾引號。 這導致

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

另一種寫法是:

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

\\ n將導致換行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM