2017-02-11 107 views
-6

背後的故事:我正嘗試在en.cppreference.com上創建一個帳戶。該過程的一部分 包括: 什麼是性病::法院< <「EV」 < <「A」顯示;不能理解「std :: cout」

的困境:我不知道這到底是。 我試圖把它放入終端,但沒有用處。 我試圖把它放在代碼中並編譯它...仍然沒有運氣。 我使用了它,但沒有接近理解他們要求我做什麼。 最後但並非最不重要,我去http://en.cppreference.com/w/cpp/io/cout

並發現下面的代碼,我也試圖編譯沒有運氣。

#include <iostream> 
struct Foo { 
    int n; 
    Foo() { 
     std::cout << "static constructor\n"; 
    } 
    ~Foo() { 
     std::cout << "static destructor\n"; 
    } 
}; 
Foo f; // static object 
int main() 
{ 
    std::cout << "main function\n"; 
} 

嘗試編譯它導致:

[[email protected] LearningCode]$ gcc input.c 
input.c:1:20: fatal error: iostream: No such file or directory 
#include <iostream> 
        ^
compilation terminated. 

所有我想要做的就是過去這一點,所以我可以創建一個帳戶,並瞭解C語言編程。

+0

您使用C編譯器('gcc')彙編寫在C++編寫代碼。您必須使用C++編譯器,例如'g ++'。 – DyZ

+2

您不需要cppreference.com帳戶即可學習C. cppreference.com上的所有內容都可在您未登錄的情況下使用。擁有一個帳戶只允許您編輯維基。 – emlai

+0

@DYZ,謝謝,這很好。我想 – Vasqi

回答

0

您在C++程序中提供的代碼。您需要將其保存爲file.cpp格式,之後您需要使用g++ file.cpp進行編譯,它應該可以工作。

您已將其保存爲file.c格式,並使用gcc進行編譯,這是C標準,而不是C++。

0

這是一個C++程序和您嘗試使用gcc編譯器來編譯。使用g++編譯器編譯該程序。

+0

好的,我已經考慮過了。 – Vasqi

+0

我的印象是gcc是c/C++,所以我試圖編譯爲.c和.cpp,認爲我已經覆蓋了。但我只是嘗試了g ++ input.cpp並且工作正常。對不起,我不能再將你的答案標記爲正確的,因爲一旦我問這個問題,我的代表就從16下降到了10。 – Vasqi

+0

@Vasqi,沒關係。請注意''是一個C++庫。樂意效勞。 – Rishi

0

gcc編譯器是能夠編制C++代碼,見here。我認爲問題是,你編譯gcc input.c。嘗試將文件名更改爲input.cpp,因爲*.c文件是C文件,而*.cpp文件是C++文件。您還需要告訴鏈接器,因爲C++沒有按標準鏈接。所以這應該工作:gcc input.cpp -lstdc++。您也可以使用g++編譯器,默認情況下這些庫是鏈接的。
要回答你的問題的另一部分:std::cout其實std::cout。只是控制檯(在C中它是標準輸出,我不確定它是否在C++中被稱爲相同)。並且cout打印出文本。

+0

Xeneda,在我來這裏尋求建議之前,我做了一次失敗的嘗試編譯爲:gcc input.cpp。 – Vasqi

+0

嘗試使用gcc input.cpp -lstdC++進行編譯。這將鏈接標準的C++庫。 –

0

std::cout打印給控制檯的字符串。我建議嘗試一些基本的C++教程,也許this會沒事的。這應該工作

兩個simpliest例子:

#include <iostream> 

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

和第二(這樣做完全一樣的):

#include <iostream> 
using namespace std; 

int main() 
{ 
    cout << "Hello World!"; 
}