当我构建我的程序并在头文件中留下我的getTokens函数时,我得到一个错误但是当我把它拿出来时它构建正常。我正在尝试在标题中声明一个名为getToken()的函数。
这是我得到的错误。
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 :(得分:2)
istream和string在std命名空间中。您需要使用std命名空间来确定类型的质量。
TokenType getToken(std::istream*br, std::string&lexeme);
在显示意图方面,使用br而不是指针也可能更好。
TokenType getToken(std::istream &br, std::string &lexeme);
作为旁注,你不需要所有这些包括。 &LT; istream的&GT;和&lt; ostream的&GT;作为&lt;的一部分包含在内。的iostream&GT;