-1

こんにちは、私はこれまでで最も単純なことを書いています。テキスト ファイルを読み取るための ifstream を作成しているだけで、奇妙なエラーが発生します。コードは次のとおりです (注: iostream と fstream で欠落している '<' は、私のコードでは適切に記述されていますが、ここには記述できませんでした)

#include "genlib.h"
#include "simpio.h"
#include "random.h"
#include "vector.h"
#include "map.h"
#include <iostream>
#include <fstream>

int main() {
 ifstream in;
 in.open("Hamlet.txt");
 if (in.fail()) Error("Could not open file");
 return 0;
}

ifstream の後に次のエラーが表示されます。行 : 「エラー : '=' トークンの前に非修飾 ID が必要です」

何がうまくいかないのですか?

ありがとう

4

5 に答える 5

4

過去の唯一の異常ifstream in;Error呼び出しです。私の勝手な推測では、マクロの書き方がまずいということです。代わりにこれを試してください:

int main() {
 ifstream in;
 in.open("Hamlet.txt");
 if (in.fail()) { Error("Could not open file"); }
 return 0;
}

を囲む新しい中括弧に注意してくださいError

于 2010-09-27T14:59:40.360 に答える
2

追加する必要があります

using namespace std;

修飾なしでライブラリから任意の名前を使用する。それ以外の場合、宣言は

std::ifstream in;

オプションもあります

using std::ifstream;

std::ifstreamしかし、私はそれをお勧めしません。なぜなら、あなたはおそらくそれほど頻繁に書き出すことはないからです。

于 2010-09-27T17:36:45.473 に答える
1

私の推測では、あなた自身のインクルード ファイル ("genlib.h" と "simpio.h" は非標準のようです) の 1 つで、"in" で #defined になっていると思います。

于 2010-09-27T15:33:11.457 に答える
0

コンストラクターでファイルを直接開いてみてください。

ifstream inf ( "Hamlet.txt" , ifstream::in );
于 2010-09-27T14:49:44.643 に答える
0

std::ifstream を使用する

(そしてコンパイル可能なコードを提供します。これらはすべて標準ヘッダーではなく、Error() とは何ですか?)

于 2010-09-27T14:50:28.147 に答える