[英]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才能獲得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.