-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”似乎非标准)中,您是#defined“in”

于 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 回答