c语言注释换颜色,C语言实现注释转换
将C语言注释转换成C++注释
#pragma once
#pragma warning (disable:4996)
typedef enum ConvertState
{
SUCCESS,//转换成功
FILE_ERROR,//打开文件失败
NO_MATCH,//转换失败
} ConvertState;
//转换的状态
typedef enum State
{
C_BEGIN,//C语言注释开始
C_END,//C语言注释结束
CPP_BEGIN,//C++注释开始
CPP_END,//C++注释结束
}State;
ConvertState Convert(FILE *fin, FILE *fout)
{
ConvertState ret = SUCCESS;
char first, second;
State tag = C_END;
assert(fin);
assert(fout);
do{
first = fgetc(fin);
switch (first)
{
case '/':
second = fgetc(fin);
if (second == '*')
{
//3/匹配问题
if (tag == C_END)
{
fputc('/',fout);
fputc('/',fout);
tag = C_BEGIN;
}
else
{
fputc('/', fout);
fputc('*', fout);
}
}
else if (second == '/')
{
char next;
fputc('/', fout);
fputc('/', fout);
do{
next = fgetc(fin);
fputc(next, fout);
if (next == EOF)
return ret;
} while (next != '\n');
}
else
{
fputc(first, fout);
fputc(second, fout);
}
break;
case '\n':
//4.多行注释问题
fputc('\n', fout);
if (tag == C_BEGIN)
{
fputc('/', fout);
fputc('/', fout);
}
break;
case '*':
second = fgetc(fin);
if (second == '/')
{
//2.换行问题
char next = fgetc(fin);
//5.连续注释问题
if (next == '/')
{
fputc('/n', fout);
fseek(fin, -1, SEEK_CUR);
}
else if (next != '\n'&&next != EOF)
{
fputc('\n', fout);
fputc(next, fout);
}
else
{
fputc('/n', fout);
}
tag = C_END;
}
else if (second == '*')
{
fputc(first, fout);
fseek(fin, -1, SEEK_CUR);
}
else
{
fputc(first, fout);
fputc(second, fout);
}
break;
default:
if (first != EOF)
{
fputc(first, fout);
}
break;
}
} while (first != EOF);
if (tag != C_END)
{
ret = NO_MATCH;
}
return ret;
}
ConvertState AnnotationConvert(const char*inputfile, const char* outputfile)
{
ConvertState ret;
FILE* fout, *fin;
fin = fopen(inputfile, "r");
if (fin == NULL)
{
printf("打开文件%s失败,errno:%d\n", inputfile, errno);
return FILE_ERROR;
}
fout = fopen(outputfile, "w");
if (fout == NULL)
{
fclose(fin);
printf("打开文件%s失败,errno:%d\n", outputfile, errno);
return FILE_ERROR;
}
ret = Convert(fin, fout);
fclose(fin);
fclose(fout);
return ret;
};
void test()
{
char *inputfile = "C";
char *outputfile = "C++";
ConvertState flag=AnnotationConvert(inputfile, outputfile);
if (flag == SUCCESS)
{
printf("转换成功,请查看");
}
else if (flag == FILE_ERROR)
{
printf("打开文件失败");
}
else
{
printf("转换失败=_=||");
}
}
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
#include
#include
#include"AnnotationConvert.h"
int main()
{
test();
system("pause");
return 0;
}
运行结果:
c语言注释换颜色,C语言实现注释转换相关推荐
- R 语言ggplot 换颜色-发文章用的sci 色卡
那当然就是ggsci 包啦 包含多种选择,先上图: Nature Publishing Group Journal of Clinical Oncology 还有很多选择,只要在ggplot2 基础上 ...
- c语言表白代码颜色,C语言告白代码,一闪一闪亮晶晶~
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #define I 20 #define R 340 int main() { int i,j,e; ...
- C语言怎么改变窗口颜色,C语言运行窗口颜色.doc
C语言运行窗口颜色 C语言运行窗口颜色 #include #include int main(void) { int i,j; printf("背景颜色:0:黑.1:蓝.2:绿.3:湖蓝色. ...
- 可以用c语言改笔记本键盘灯,笔记本背光键盘有必要吗怎么换颜色
现如今在笔记本电脑市场当中也配备了相当酷炫的背光键盘,有的朋友在看到了之后会说笔记本电脑的背光键盘有必要吗?在这里告诉大家,其实笔记本电脑的背光键盘也是有必要的,因为它可以让我们在夜晚的时候更好的看清 ...
- 编译c语言程序时 程序中的注释部分将,C语言程序编译时,程序中的注释部分将 答案:不参加编译,也不会出现在目标程序中...
相关问题 在普通视图中,需打开"插入"菜单,单击"脚注"或"尾注",打开一注释内容编辑区, 才能查看和编辑注释内容: 视图 中 菜单 脚注 ...
- python语言中的注释符_各种语言中的注释符总结
各种语言中的注释符 c语言 /* 注释内容*/ // 注释内容 Pascal: { 注释内容} Vb: Rem 注释内容 '注释内容 Vbscript: '注释内容 rem 注释内容 Javascri ...
- C语言第三节关键字、标识符、注释
学习语法之前的提醒 C语言属于一门高级语言,其实,所有高级语言的基本语法组成部分都是一样的,只是表现形式不太一样 就好像亚洲人和非洲人,大家都有人类的结构:2只 手.2只脚.1个头,只是他们外表不太一 ...
- Dev++ 环境设置C语言关键字显示颜色
Dev++ 环境下设置C语言关键字显示颜色或高亮显示 在默认的状态下,c语言关键字的颜色是黑色的,在写程序时不好区分关键字和变量,所以设置一下颜色会好看点. 1.点击工具->编辑器选项 2.选择 ...
- c语言注释两种,C语言有几种注释方式
C语言有两种注释方式,一种是以/*开始,以*/结束的块注释:另一种是以//开始,以换行符结束的单行注释.具体使用方法如:[const double pi = 3.1415926536; // pi是- ...
最新文章
- 基于OpenCV的条形码检测
- 生物系统和疾病的多组学数据整合考虑和研究设计
- Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)
- 侠客X开发工作已经持续了2个月左右了。
- 2013年全球ERP市场格局(Gartner)
- 设计模式-中介者模式(21)
- 【java笔记】hello world入门程序
- 2.4.PHP7.1 狐教程-【PHP常量】
- 百度手机输入法中的五笔9键盘有问题?
- 零食店投资?市场成本风险分析
- C++虚函数指针虚函数表
- linux的cd命名返回上级目录,返回根目录
- AT91SAM7SE应用 -- UART
- ccf 节日 java 思路
- MSTAR数据集处理
- 外星人入侵游戏python学习心得——创建第一个外星人在左上角
- 聊聊NIPT基因检测技术
- 感恩节,感谢大家的一路相伴
- Html5 Egret游戏开发 成语大挑战(二)干净的eui项目和资源准备
- 从零开始学习信号完整性--7-SI分析仿真
热门文章
- HTML head 头标签
- Multimedia (MP3, MPEG-4, AVI, DiVX, etc.) support in Ubuntu 12.04 (Precise)
- 免费wordpress主题在线生成网站
- 在网页中嵌入任意字体的解决方案 (insert any font)
- 最短路径——Floyd算法及优化(蓝桥杯试题集)
- C++——构建单链表的方法
- 多存多取问题 java
- private关键字 java 1613808402
- 测试markdown的发布
- 演练 创建数据库MySchool 1007 sqlserver