2014-10-23 2 views
0

Когда я создаю свою программу и уезжаю в мою функцию getTokens внутри файла заголовка, я получаю сообщение об ошибке, но когда я его вынимаю, он строит отлично. Я пытаюсь сделать объявление для функции с именем getToken() в заголовке.Ошибка C2061: синтаксическая ошибка: идентификатор 'istream'

Это ошибка, которую я получаю.

tokens.h (26): ошибка C2061: ошибка синтаксиса: идентификатор 'IStream'

#include "stdafx.h" 
#include <iostream> 
#include <istream> 
#include <ostream> 
#include <fstream> 
#include <string> 


class Tokens 
{ 
public: 
    enum TokenType { 

    TEXT, 
    LANGLE, 
    RANGLE, 
    SLASH, 
    ID, 
    EQ, 
    QSTRING, 
    OTHER, 
    END, 

    }; 

    TokenType getToken(istream*br, string&lexeme); 

}; 
+0

'std :: istream' ... –

+1

Отсутствует' std :: '. Голосование закрывается как «типографская ошибка». – Rapptz

+0

@PaulGriffiths @Rapptz; Благодаря! – John

ответ

2

IStream и строка находится в пространстве имен станд. Вам нужно качественно выбрать тип с пространством имен std.

TokenType getToken(std::istream*br, std::string&lexeme); 

Возможно, было бы лучше использовать ссылку на br, а не указатель с точки зрения отображения намерения.

TokenType getToken(std::istream &br, std::string &lexeme); 

Как примечание стороны, вам не нужны все из них. < istream> и < ostream> включены как часть < iostream>

+0

Спасибо, я пытался выяснить, что поставить перед ::. Также я планирую использовать цикл while (br-> good()) для чтения файла, так как можно использовать ссылку вместо этого? – John

+0

Если он решил вашу проблему, не забудьте принять ответ. : P – BlamKiwi

+0

Извините, был прерван на мгновение. – John

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