Flex cout字符串崩溃

flex cout string crash

本文关键字:崩溃 字符串 cout Flex      更新时间:2023-10-16

当我尝试在flex程序中打印字符串(cout)时,程序崩溃。我的。l文件看起来像这样:

%{
    #include <iostream>
    #include <string>
    using namespace std;
%}
%option noyywrap
%%
.   {string str = "hi"; cout << str;}
%%
int main(){
    yylex();
    return 0;
}
我用g++编译生成的文件。我的flex版本是2.5.35。

当我只写cout << "hi";时,程序不会崩溃。

我做错了什么?

它似乎可以与flex 2.5.39版本一起工作。

您可以使用g++ -E对生成的文件进行预处理,并查看输出,看看

的翻译是否符合
{string str = "hi"; cout << str;}