转换注释,从文件里哦
来源:互联网 发布:桑拿软件 编辑:程序博客网 时间:2024/06/06 02:16
在一个文件里有一段代码,将里面的 /* */ 注释全部转换为 // 注释,初学者可能听起来很牛很难(我现在是初学者,我是这样认为的),只要理解了问题的意思,就会发现,诶,有点意思
话不多说,直接代码走起
convert_comment.h
#ifndef _CONVERT_COMMENT_H_#define _CONVER_COMMENT_H_#define INPUTFILE "input.c"#define OUTPUTFILE "output.c"enum{CSTATUS,CPPSTATUS,NULLSTATUS,EOFSTATUS};void connver_main();#endif
main.c
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include"convert_comment.h"int main(){connver_main();system("pause");}
convert_comment.c
#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include"convert_comment.h"int status = NULLSTATUS;void do_null_status(FILE* ifp,FILE *ofp){int c = fgetc(ifp);switch(c){case '/':{int s = fgetc(ifp);switch(s){case '*':{fputc('/',ofp);fputc('/',ofp);status = CSTATUS;}break;case '/':fputc('/',ofp);fputc('/',ofp);status = CPPSTATUS;break;case EOF:status = EOFSTATUS;break;default:fputc(c,ofp);ungetc(s,ifp);//不知道啥东西,退回去status = NULLSTATUS;break;}}break;case EOF:status = EOFSTATUS;break;default:fputc(c,ofp);status = NULLSTATUS;break;}}void do_cpp_status(FILE* ifp,FILE *ofp)// is //{int c = fgetc(ifp);switch(c){case '\n':fputc('\n',ofp);break;case '/':status = CPPSTATUS;break;case '*':fputc('/',ofp);fputc('/',ofp);break;case EOF:status = EOFSTATUS;break;default:fputc(c,ofp);status = NULLSTATUS;break;}}void do_c_status(FILE* ifp,FILE *ofp)// is **{int c = fgetc(ifp);switch(c){case '*':{int s = fgetc(ifp);switch(s){case '/':fputc('\n',ofp);status = NULLSTATUS;break;default:fputc(c,ofp);ungetc(s,ifp);status = CSTATUS;break;}}break;case EOF:status = EOFSTATUS;break;case '\n':fputc('\n',ofp);fputc('/',ofp);fputc('/',ofp);status = CSTATUS;break;default:fputc(c,ofp);status = CSTATUS;break;}}static void convert_work(FILE * ifp,FILE * ofp){while(status != EOFSTATUS){switch( status){case NULLSTATUS:do_null_status(ifp,ofp);break;case CPPSTATUS:do_cpp_status(ifp,ofp);break;case CSTATUS:do_c_status(ifp,ofp);break;case EOFSTATUS:break;default:break;}}}void connver_main(){FILE *ifp = fopen(INPUTFILE,"r");FILE * ofp = fopen(OUTPUTFILE,"w");if(ifp == NULL||ofp == NULL){fprintf(stderr,"this is fopen error\n");return ;}convert_work(ifp,ofp);fclose(ifp);fclose(ofp);}
不要忘了要把 input.c output.c文件建立在和你main.c comment.c .h文件一样的位置哦!
如果有不对的地方,可以评论告诉我,望指导!
阅读全文
0 0
- 转换注释,从文件里哦
- 怎样在ASPX文件里使用注释?
- 注释转换(从c到c++)
- 从资源里拷贝文件
- 【小项目】注释风格转换(从C语言注释风格转换到C++注释风格)
- C语言里的注释转换问题 (把C语言的的注释转换成C++的注释)
- 从文件里得到url地址
- 从文件里随机抽取XX行
- 从文件资源里获取文本
- iOS从静态库里读取文件
- Android从assets里读取文件
- 从excel文件里读取数据
- Unity3D 从 TEXT 文件里读入数组
- 注释转换
- 注释转换
- 注释转换
- 注释转换
- 注释转换
- DFA与NFA
- ARM架构基础知识
- 作业:简化的插入排序
- 正则表达式: NFA引擎匹配原理
- redis主从数据复制实现原理与搭建
- 转换注释,从文件里哦
- web.xml配置文件中ContextLoaderListener的作用
- fzu2082(树链剖分)
- mysql 表B字段替换表A字段
- nginx的五种负载算法模式
- Pycaffe-简单测试caffe模型的分类效果和运行速度
- PHP常量
- 虚拟内存和物理内存
- Hbase与Mapreduce集成的案例