Flexで出力を別のテキストファイルに入れる方法

Flexで出力を別のテキストファイルに入れる方法

Flexを使用して、テキストファイルの単語が動詞であることを確認する簡単なプログラムを作成しました。しかし、出力を別のテキストファイルに保存(印刷)したいです。
可能ですか?どうすればいいですか?

私のサンプルコードは次のとおりです。

%%

[\t]+

is   |

am   |

are  |

was  |

were {printf("%s: is a verb",yytext);}

[a-zA-Z]+ {printf("%s: is a verb",yytext);}

. |\n

%%

int main(int argc, char *argv[]){    
    yyin = fopen(argv[1], "r");    
    yylex();         
    fclose(yyin);
}

ベストアンサー1

lex私は/について十分にわかりませんが、flex質問で見たコードに基づいて次のコードを追加してみましたmain()

FILE * myfd = fopen(argv[2], "w");

fprintf()代わりに、次のように使用してくださいprintf()

{ fprintf(myfd, "%s: is a verb", yytext); }

私はargv[2]ファイル名のソースを使用しています。つまり、プログラム呼び出しで2番目のパラメータとしてこれを指定する必要がありますが、ファイル名を含む文字列をハードコードすることもできます。

おすすめ記事