C语言中实现去除/**/类注释的有限状态自动机为:
按照上图,实现代码如下:(编译器:C-Free 5.0)
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define NULL 0
main() {
enum {
x1 = 0,
x2 = 1,
x3 = 2,
x4 = 3,
x5 = 4,
} state;
FILE *fp_in, *fp_out;
char ch, temp;
state = x1;
fp_in = fopen("编辑前代码.txt", "r");
fp_out = fopen("编译后代码.txt", "w");
if((fp_in = fopen("编译前代码.txt", "r")) == NULL) {
printf("打开编译前代码.txt文件失败!");
getchar();
exit(1);
}
if((fp_out = fopen("编辑后代码.txt", "w")) == NULL) {
printf("打开编译后代码.txt文件失败!");
getchar();
exit(1);
}
ch = fgetc(fp_in);
do {
switch(state) {
case 0: if(ch =