这是我的简单lex文件,里面有main函数。 我想用g ++编译它。
%{
#include <iostream>
%}
%%
[ \t] ;
[0-9]+\.[0-9]+ { cout << "Found a floating-point number:" << yytext << endl; }
[0-9]+ { cout << "Found an integer:" << yytext << endl; }
[a-zA-Z0-9]+ { cout << "Found a string: " << yytext << endl; }
%%
main() {
// lex through the input:
yylex();
}
我在终端上运行以下命令 lex ex1.l
g ++ lex.yy.c -lfl -o scanner
我收到以下错误
答案 0 :(得分:1)
cout
位于std
命名空间中。您需要将其称为
std::cout
同样适用于endl
。
注意,你可以说
using std::cout;
using std::endl;
在使用cout
和endl
名称之前的某个地方。在执行此操作时,您应该注意不存在名称冲突的可能性。在有限的范围内使用它,而不是在头文件中使用它。