簡體   English   中英

istream和ostream問題-C ++

[英]istream and ostream problem - C++

我正在使用g ++和Dev-C ++這兩個編譯器。 當我在Dev-C ++上編譯程序時,它可以完美編譯。 但是當我嘗試在g ++上進行編譯時,它給了我兩個錯誤:

In file included from a2test.cpp:27:
----.h:25: error: 'ostream' has not been declared
----.h:26: error: 'istream' has not been declared

誰能告訴我該怎么做才能解決這個問題。

謝謝

確保包括fstream。 另外,在ostream之前放置“ std ::”,或在某處放置“ using namespace std”。

如果您發布代碼會有所幫助,因為現在我只是基於常見錯誤進行猜測。

我猜你忘了包括fstream,因為不同的編譯器可能會使用不同的頭文件,並且g ++的頭文件可能帶有

// iostream
#include <fstream>

盡管Dev-C ++可能具有

// iostream
// no include for fstream in this file

因此,您不小心導入了正確的頭文件,而不是顯式地導入它。

對於頭文件,我忘記使用哪個站點就使用該站點。

ostream-C ++參考

看來您需要包括ostream才能獲得ostream。 對於istream可能是同一件事。

我精通的調試技能表明,該問題可能意味着您對g ++和g ++ Dev-CPP正在使用的調用是gcc的不同版本。 Dev-CPP隨附的(可能是更早的)版本中的頭文件之一可能會#include包含不需要的標准C ++頭文件,這將允許編譯並非嚴格正確的頭文件。

確保您實際上已#include d <iostream><istream><ostream><iosfwd> -一些標頭實際上為您包括了這些類型。

旁注 :請不要使用Dev-CPP-該項目已經死了,編輯器犯了很多罪。此外,它也不是一個好的編輯器。Code :: Blocks或Visual Studio怎么樣(都免費)代替?)

不知道這是否會有所幫助,但是首先,您應該記住省略一些其他編譯器(MS-C ++)使用的“ .h”,而不是ANSI / G ++。因此,它應該只是

#include <iostream>

其次,不要忘記:

using namespace std;

第三,已經很長時間了,但是如果我沒記錯的話,在g ++中,istream和ostream函數在“ std”庫中..因此您可以執行以下操作:

using std::istream;
//later
istream::iostate state = ...

或者,您可以像這樣直接使用它們:

std::istream::iostate state = ...

希望能給你一些想法。

暫無
暫無

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

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