c语言项目 注释转换 (c———c++)
来源:互联网 发布:全站仪数据采集 编辑:程序博客网 时间:2024/06/18 00:20
所以我们把项目分成这以下四个状态:
1
NUL_STATE, C_STATE, CPP_STATE, EMD_STATE
#ifndef __COMMENT_CONVERT_H__#define __COMMENT_CONVERT_H__#include<stdio.h>#include<stdlib.h>#define INPUTFILENAME "input.c"#define OUTPUTFILENAME "output.c"enum STATE{NUL_STATE,C_STATE,CPP_STATE,EMD_STATE};void CommentConvert(FILE *pRead,FILE *pWrite);void do_nul_state(FILE *pRead,FILE *pWrite);void do_c_state(FILE *pRead,FILE *pWrite);void do_cpp_state(FILE *pRead,FILE *pWrite);#endif //__COMMENT_CONVERT_H__
#include"CommentConvert.h"enum STATE state;void CommentConvert(FILE *pRead,FILE *pWrite){while(state!=EMD_STATE){switch(state){case NUL_STATE:do_nul_state(pRead,pWrite);break;case C_STATE:do_c_state(pRead,pWrite);break;case CPP_STATE:do_cpp_state(pRead,pWrite);break;case EMD_STATE:break;}}}void do_nul_state(FILE *pRead,FILE *pWrite){int first=0;int second=0;first = fgetc(pRead);switch(first){case '/':{second=fgetc(pRead);if(second=='*'){fputc('/',pWrite);fputc('/',pWrite);state=C_STATE;}else if(second=='/'){fputc(first,pWrite);fputc(second,pWrite);state=CPP_STATE;}else{fputc(first,pWrite);fputc(second,pWrite);}}break;case EOF:state=EMD_STATE;break;default:fputc(first,pWrite);break;}}void do_c_state(FILE *pRead,FILE *pWrite){int first=0;int second=0;int third=0;first = fgetc(pRead);switch(first){case '*': {second=fgetc(pRead);switch(second){case '/':third=fgetc(pRead);if(third!='\n'){fputc('\n',pWrite);//fputc('/',pWrite);//fputc('/',pWrite);state=CPP_STATE;} if(third=='/'){ungetc(third,pRead);state=NUL_STATE;break;}else{fputc(third,pWrite);state=NUL_STATE;break;}case'*':third=fgetc(pRead);fputc(first,pWrite);if(third=='/'){state=NUL_STATE;}break;default:fputc(first,pWrite);fputc(second,pWrite);break;}break;case'\n':fputc(first,pWrite);fputc('/',pWrite);fputc('/',pWrite);break;case EOF:state=EMD_STATE;break;default:fputc(first,pWrite);break;}}}void do_cpp_state(FILE *pRead,FILE *pWrite){int first=0;first = fgetc(pRead);switch(first){case '\n':{fputc(first,pWrite);//fputc('/',pWrite);//fputc('/',pWrite);state=NUL_STATE;}break;case EOF:state=EMD_STATE;break; default:fputc(first,pWrite);break;}}
#include"CommentConvert.h"int main(){FILE *pRead = NULL;FILE *pWrite = NULL;printf("注释转换开始:");pRead=fopen(INPUTFILENAME,"r");if(NULL ==pRead){perror("open file for read\n");exit(EXIT_FAILURE);}pWrite=fopen(OUTPUTFILENAME,"w");if(NULL ==pWrite){fclose(pRead);perror("open file for write\n");exit(EXIT_FAILURE);}CommentConvert(pRead,pWrite);printf("注释转换完成:");return 0;}
1 0
- C语言小项目—注释转换( C注释转换为C++注释 )
- 注释转换——C语言项目
- C语言小项目—注释转换
- c语言项目 注释转换 (c———c++)
- [项目]注释转换 ——C++注释转换为标准C语言注释
- c语言项目-注释转换
- 【C语言项目】注释转换
- c语言注释转换项目
- 【C语言】注释转换 ——C注释转换为标准C++语言注释
- 注释转换(c—>c++)
- C语言项目:注释转换(C风格注释转换成C++风格注释)
- C语言:C语言注释转换C++,注释转化项目C-->C++注释
- 注释转换(C语言->C++)
- 注释转换(c语言->c++)
- c语言小项目----注释转换
- C语言小项目---注释转换
- 【C语言】注释转换项目实现
- C语言小项目-注释转换
- eclipse编码设置
- Linux-文件备份shell
- HDU 2602 Bone Collector【01DP(二)】
- Ajax框架整合
- JS字符串,数组操作(持续更新)
- c语言项目 注释转换 (c———c++)
- 存储——硬盘结构
- 关于(i++)与(++i)在计算中的讨论
- [VS2010]_[Windows]_[Debug模式下LoadLibrary错误87]
- CF367 E - Working routine
- Android N/Android 7.0新特性(图文详解Android 7.0新功能)
- 109. Convert Sorted List to Binary Search Tree
- 一起talk C栗子吧(第一百八十二回:C语言实例--在printf函数中设置输出宽度一)
- Math的使用