错误 C2061:语法错误:标识符"istream"

Error C2061: syntax error : identifier 'istream'

本文关键字:错误 istream 语法 C2061 标识符      更新时间:2023-10-16

当我构建程序并将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);
};

istream和字符串位于std命名空间中。您需要使用std命名空间对类型进行质量控制。

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

在显示意图方面,最好使用br的引用,而不是指针。

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

正如旁注一样,你不需要所有这些内容<istream>和<ostream>作为<iostream>