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

스크립트가 결과를 인쇄하도록 할 수 있습니다.표준 출력(일반 터미널 출력) 그런 다음 파일로 리디렉션합니다.>-운영자:

스크립트가 파일이고 /home/USERNAME/bin/isVerb"procrastination"이라는 단어를 확인하고 싶다고 가정하면 다음과 같이 실행할 수 있습니다.

/home/USERNAME/bin/isVerb procrastinate > /home/USERNMAE/Documents/isVerb-procrastinate.txt

이 명령은 파일을 생성 /home/USERNMAE/Documents/isVerb-procrastinate.txt하거나 이미 존재하는 경우 파일을 바꾸고 출력을 해당 파일에 저장합니다.
명령이 출력을 파일에 추가하도록 하려면(이미 존재하는 경우 파일을 생성하십시오) 다음을 사용할 수 있습니다.>>바꾸다 >.

관련 정보