注释转换(c语言->c++)
2017-12-07 20:53
162 查看
convert.h 文件
convert.c文件
main.c文件
#ifndef CONVERT_H #define CONVERT_H #define INPUTFILE "inputfile.c" #define OUTPUTFILE "outfile.c" enum { null_status,c_status,cpp_status,eof_status, }status; void convert(); #endif // !CONVERT_H
convert.c文件
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include"convert.h" void do_null_status(FILE *ifp, FILE *ofp) //进行状况监测 (1) /* (2) // (3) eof { int c = fgetc(ifp); switch (c) { case '/': { int s = fgetc(ifp); switch (s) { case '*': fputc('/', ofp); fputc('/', ofp); status = c_status; break; case '/': fputc('/', ofp); fputc('/', ofp); status = cpp_status; break; case EOF: fputc('/', ofp); status = eof_status; break; default: fputc(c, ofp); ungetc(s, ifp); break; } break; case EOF: status = eof_status; break; default: fputc(c, ofp); status = null_status; break; } } } void do_c_status(FILE *ifp, FILE *ofp) // 处理三种情况 (1) /* ----- */ // (2) /* ---- { // ---- */ int c = fgetc(ifp); // (3) /* ---- // ----- switch (c) { case '*': { int s = fgetc(ifp); switch (s) { case '/': status = null_status; break; case '\n': fputc('\n', ofp); fputc('/', ofp); fputc('/', ofp); break; case EOF: status = eof_status; break; default: fputc(c, ofp); fputc(s, ofp); break; } break; } case '\n': fputc('\n', ofp); fputc('/', ofp); fputc('/', ofp); break; case EOF: status = eof_status; break; default: fputc(c, ofp); status = c_status; break; } } void do_cpp_status(FILE *ifp, FILE *ofp) // 处理一种情况 :(1) // ------ { int c = fgetc(ifp); switch (c) { case '\n': fputc(c, ofp); status = null_status; break; default: fputc(c, ofp); break; } } void convert() { FILE *ifp = fopen(INPUTFILE, "r"); if (NULL == ifp) { perror("open file error"); fclose(ifp); } FILE *ofp = fopen(OUTPUTFILE, "w"); while (!feof(ifp)) { switch (status) //status未初始化,默认值为0 { case null_status: do_null_status(ifp, ofp); break; case c_status: do_c_status(ifp, ofp); break; case cpp_status : do_cpp_status(ifp, ofp); break; case eof_status: break; default : break; } } fclose(ifp); fclose(ofp); }
main.c文件
#include<stdio.h> #include"convert.h" int main() { convert(); return 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注释-&gt;到c++注释)
- 实现C++注释转换为标准C语言注释
- C->C++注释转换的简单实现
- C语言的注释与C++注释的转换
- C语言的注释与C++注释的转换
- 注释转换——C语言项目
- 三进制小数转换<C语言>
- C语言注释与C++注释的相互转换