我有一个基本的功能:的类型 '的std :: istream的*' 和 '炭' 二进制 '操作>>' 无效操作数
TokenType getToken(istream *in, string& recognized){
char token;
in >> token;
if (token=='#'){
in.ignore('\n');
in >> token;
}
return T_UNKNOWN;
}
(TokenType
只是一个枚举。)
error: invalid operands of types ‘std::istream* {aka std::basic_istream<char>*}’ and ‘char’ to binary ‘operator>>’
为什么编译器引发此错误:由于某些原因,当与G ++编译时同时in >> token;
线的给我这个错误?我希望能够从in
指向的流中提取一个char
,然后如果该char
是英镑符号,则跳到下一行。
为子孙后代着想,我包括:
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
#include <regex>
using namespace std;
为什么不只是一个'std :: istream&'? – chris