非常基本的C ++错误

时间:2010-09-27 14:46:39

标签: c++ fstream

嘿伙计们,我写的是最简单的东西,只是创建一个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之后我得到以下错误; line:“error:在'='标记之前预期的unqualified-id”

知道出了什么问题吗?

由于

5 个答案:

答案 0 :(得分:4)

过去ifstream in;之后唯一不寻常的是Error电话。我猜测它是一个写得不好的宏。试试这个:

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

请注意Error周围的新大括号。

答案 1 :(得分:2)

您需要添加

using namespace std;

无需限定即可使用库中的任意名称。否则,声明必须是

std::ifstream in;

还有选项

using std::ifstream;

但我不推荐它,因为你可能不会经常写出std::ifstream

答案 2 :(得分:1)

我的猜测是,你自己的一个包含文件(“genlib.h”和“simpio.h”似乎是非标准的),你在#dep中“#defined”

答案 3 :(得分:0)

尝试直接在构造函数中打开文件:

ifstream inf ( "Hamlet.txt" , ifstream::in );

答案 4 :(得分:0)

使用std :: ifstream

(并提供可编译的代码;那些不是所有标准头文件,什么是Error()?)