현재 위치 - 인적 자원 플랫폼망 - 미니프로그램 자료 - C++ 프로그램을 찾으면 한 디렉토리에 있는 모든 C++ 헤더 파일과 소스 파일에서 주석 행을 제거할 수 있습니다.
C++ 프로그램을 찾으면 한 디렉토리에 있는 모든 C++ 헤더 파일과 소스 파일에서 주석 행을 제거할 수 있습니다.
국가 기계가 되다

다음 상태를 나타냅니다.

0: 분석 중

1: 읽기/

2: 두 번째/,"// ...

3: 읽기 "/* ...

4: 읽기 "/* ... *

5: 첫 번째 읽기 "

6: 이스케이프 문자 읽기 ... \

7: 설명 찾기

0 과 7 은 동등한 상태이지만, 7 가지 상태로 특별한 일을 할 수 있습니다. 예를 들어, 이 시점에서 새로 발견된 댓글을 삭제할 수 있습니다. 최종 절차는 다음과 같습니다. c 파일로 출력하는 것이 더 편리합니다.

#' stdio.h' 포함

# 문자열 포함

Char FSM [8] [128];

Void initfsm ()

{

Const intline _ len = sizeof (char) *128;

Memset(fsm[0], 0, line _ len);

Memset(fsm[ 1], 0, line _ len);

Memset(fsm[2], 2,line _ len);

Memset(fsm[3], 3, 라인 _ len);

Memset(fsm[4], 3, line _ len);

Memset(fsm[5], 5, line _ len);

Memset(fsm[6], 5, 라인 _ len);

Memset(fsm[7], 0, 라인 _ len);

Fsm [0] ['/'] =1;

Fsm [0] ['"'] = 5;

Fsm [1] ['/'] = 2;

Fsm [1] ['*'] = 3;

Fsm [1] ['"'] = 5;

Fsm [2] ['\ n'] = 7;

Fsm [3] ['*'] = 4;

Fsm [4] ['/'] = 7;

Fsm [4] ['*'] = 4;

Fsm [5] ['"'] = 0;

Fsm [5] ['\ \'] = 6;

Fsm [7] ['/'] =1;

Fsm [7] ['"'] = 5;

}

Int main ()

{

Intstate = 0;

Char c;;

Std:: strings;

FILE *fin=fopen("e:\\in.txt ","r ");

FILE *fout=fopen("e:\\out.txt ","w ");

Initfsm ();

While(fscanf(fin, "%c", & ampc)! =EOF)

{

상태 = FSM [상태] [c];

S+= c;

스위치 (상태)

{

시나리오 0:

Fprintf(fout, "%s", s.c _ str ());

S =

깨뜨리다

시나리오 7:

S =

If(c=='\n')

{

Fputc(c, fout);

}

깨뜨리다

}

}

Fclose (fin);

Fclose (fout);

0 을 반환합니다

}