//删除c语言程序中所有的注释语句,要正确处理带引号的字符串与字符串常量
#include <stdio.h>
using namespace std;
#define MAXLINE 1000
void rcomment(int c);
void in_comment(void);
void deleteTail(void);
FILE* fp;
FILE* fp2;
int main()
{
fp=fopen("C:\\Users\\Administrator\\Desktop\\leetcode.cpp","r");
fp2=fopen("C:\\Users\\Administrator\\Desktop\\out.txt","w");
bool deleteMutiline=false;
char line[MAXLINE];
int c;
while((c=getc(fp))!=EOF)
rcomment(c);
return ;
}
void rcomment(int c){
int d;
if(c=='/'){
if((d=getc(fp))=='*')
in_comment();
else if (d=='/')
deleteTail();
else
{
putc(c,fp2);
putc(d,fp2);
}
}else
putc(c,fp2);
}
void in_comment(void){
int c,d;
c=getc(fp);
d=getc(fp);
while (c!='*'||d!='/')
{
c=d;
d=getc(fp);
}
}
void deleteTail(){
int c;
c=getc(fp);
while (c!='\n')
{
c=getc(fp);
}
putc('\n',fp2);
}

涉及标准库中的文件操作函数getc和putc,从文件中读单个字符,写单个字符到文件中。

以及文件结构FILE。

具体思路:

最新文章

  1. 【MySQl】MyISAM和InnoDB索引对比
  2. Java-马士兵设计模式学习笔记-桥接模式
  3. Spring安全框架 Spring Security
  4. 用java写一个web服务器
  5. Emacs golang 配置
  6. 小学生之KTV播放原理
  7. spring bean初始化和销毁
  8. alert 和 console.log的区别
  9. Linux新手随手笔记1.2
  10. centos7 系统优化脚本
  11. gcc:call to &#39;__open_missing_mode&#39; declared with attribute error
  12. 高斯消元-poj1222熄灯问题状态压缩解法
  13. HDU 5985 Lucky Coins 数学
  14. 国际化之Android设备支持的语种
  15. cookie、localStorage、sessionStorage和会话控制机制
  16. bootstrap table 前端搜索
  17. 爬虫:Scrapy5 - 选择器Selectors
  18. vs2010中TargetName与链接器输出名不一致
  19. Chainer的初步学习
  20. BZOJ.3498.[PA2009]Cakes(三元环 枚举)

热门文章

  1. 正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果
  2. 在Windows 10 系统上启用Hyper V遇到的错误:0x800f0831
  3. windows下安装python
  4. hasOneOf # if (data.otherDescArr.some(_ =&gt; &#39;7&#39;.indexOf(_) &gt; -1)) {
  5. Ubuntu修改时区和时间
  6. http请求响应格式
  7. FastNet C++/Python 网络通信库之 协议
  8. IDEA下maven工程的classpath
  9. SecureCRT 64位 破解版v8.1.4
  10. laravel 框架发送邮件