2010-09-27 2 views
0

Эй, ребята, я пишу простейшую вещь, просто создавая ifstream для чтения в текстовом файле, и у меня есть странная ошибка. Вот код (примечание: «<» отсутствует для iostream и fstream хорошо написано в моем коде, но я не мог писать их здесь)Очень простая ошибка C++

#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: expected unqualified-id before '=' token"

Любая идея, что пойдет не так?

Благодаря

+0

Ваш код компилируется без ошибок. Ошибка, возможно, причина для всех ваших проблем. – DumbCoder

+0

Что включает все посторонние? – GManNickG

+0

Вы уверены, что хотите включить '' map.h "' (а не ''), '" vector.h "' (а не '')? – Arun

ответ

0

Попробуйте открыть файл непосредственно в конструкторе:

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

использование станд :: ifstream

(и обеспечить компилируемый код, а те, не все стандартные заголовки, и что Ошибка()?)

4

Единственное, что случилось в прошлом ifstream in; - это вызов Error. Моя дикая догадка заключается в том, что это плохо написанный макрос. Попробуйте вместо этого:

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

Обратите внимание на новые брекеты вокруг Error.

+0

хорошая точка вокруг макроса. – stijn

1

Я думаю, что в один из ваших собственных включаемых файлов («genlib.h» и «simpio.h», кажется, нестандартные), что вы с помощью #define «в»

2

Вы должны добавить

using namespace std; 

использовать произвольные имена из библиотеки без квалификации. В противном случае заявление должно быть

std::ifstream in; 

Существует также вариант

using std::ifstream; 

, но я бы не рекомендовал, так как вы, вероятно, не будет выписывать std::ifstream все, что часто.

Смежные вопросы