2014-10-23 3 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 네임 스페이스이다. 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