没有合适的资源?快使用搜索试试~ 我知道了~
使用状态机实现C++清除代码中的注释
4星 · 超过85%的资源 需积分: 10 13 下载量 98 浏览量
2012-01-05
21:36:43
上传
评论
收藏 4KB TXT 举报
温馨提示
试读
7页
使用状态机实现C++清除代码中的注释.
资源推荐
资源详情
资源评论
清除代码中的注释
以下两则代码均是在向论坛上的高手们学习之后模仿出的结果,而自己之前写的那叫个臭呀!
代码1
1/**//*
2* 用状态机实现对代码中注释的清除.
3*/
4
5#include <stdio.h>
6#include <string.h>
7
8#define SCREEN
9
10void initialize_fsm(char fsm[7][256]);
11
12int main()
13{
14 int ch , temp = 0 ;
15 int state = 0;
16 char fsm[7][256];
17
18 FILE *pfin ;
19 if ((pfin = fopen("sweep-comments.txt","r")) == NULL)
20 {
21 printf("can not open the file");
22 exit(0);
23 }
24
25 #ifdef SCREEN
以下两则代码均是在向论坛上的高手们学习之后模仿出的结果,而自己之前写的那叫个臭呀!
代码1
1/**//*
2* 用状态机实现对代码中注释的清除.
3*/
4
5#include <stdio.h>
6#include <string.h>
7
8#define SCREEN
9
10void initialize_fsm(char fsm[7][256]);
11
12int main()
13{
14 int ch , temp = 0 ;
15 int state = 0;
16 char fsm[7][256];
17
18 FILE *pfin ;
19 if ((pfin = fopen("sweep-comments.txt","r")) == NULL)
20 {
21 printf("can not open the file");
22 exit(0);
23 }
24
25 #ifdef SCREEN
26 #define OUT stdout
27 #else
28 FILE *pfout;
29 pfout = fopen("result.txt","w");
30 #define OUT pfout
31 #endif
32
33 initialize_fsm(fsm);
34
35 #pragma region FSM /**////尝试#pragma region功能. Visual C++ 2005
36
37 while ((ch = fgetc(pfin)) != EOF)
38 {
39 state = fsm[state][ch];
40
41 if ( state != 2 && ch !='*' && temp == '/')
42 fputc(temp,OUT);
43
44 temp = ch;
45
46 switch(state)
47 {
48 /**//*0,5,6执行同一个动作*/
49 case 5:
50 case 6:
51 case 0:
52 fputc(ch,OUT);
53 break;
54 case 7:
55 state = 0;
27 #else
28 FILE *pfout;
29 pfout = fopen("result.txt","w");
30 #define OUT pfout
31 #endif
32
33 initialize_fsm(fsm);
34
35 #pragma region FSM /**////尝试#pragma region功能. Visual C++ 2005
36
37 while ((ch = fgetc(pfin)) != EOF)
38 {
39 state = fsm[state][ch];
40
41 if ( state != 2 && ch !='*' && temp == '/')
42 fputc(temp,OUT);
43
44 temp = ch;
45
46 switch(state)
47 {
48 /**//*0,5,6执行同一个动作*/
49 case 5:
50 case 6:
51 case 0:
52 fputc(ch,OUT);
53 break;
54 case 7:
55 state = 0;
剩余6页未读,继续阅读
资源评论
- codetravel2014-12-22还是有帮助的。。
- 慌慌卫星2012-08-07不太明白,建议写下使用说明。。。
dong4464he
- 粉丝: 0
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于HOG和SVM的人脸口罩识别算法matlab代码+说明文档.zip
- 排序实验.cpp
- 二叉树-基于C语言实现的二叉树动态可视化打印.zip
- 9e4b957740da1abcf3772babc8320259e6dba32e.jpg
- u_567203736_1646727498&fm_253&app_138&f_JPEG.jpeg
- u_2243549021_4135333655&fm_253&fmt_auto&app_138&f_JPEG.jpeg
- v2-27052acdaf76c83922770a9caa6b7880_r.jpg
- 使用JavaScript实现的排序二叉树.zip
- 实验8.doc
- 1280.jpeg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功