编写一个C程序删除一个文件的所有注释
来源:互联网 发布:鸿威软件 编辑:程序博客网 时间:2024/05/20 11:46
//删除一个文件的注释#include<stdio.h>#include<stdlib.h>void delCom();int main(){ delCom(); return 0;}void delCom(){ FILE *pfr; FILE *pfw; char t1; char t2; pfr = fopen("a.c","rb"); pfw = fopen("b.c","wb"); while( fread(&t1, 1, 1, pfr) ) { if(t1 == '/' ){ fread(&t2, 1, 1, pfr); if(t2 == '/') //读到了 '//'注释 { while( fread(&t2, 1, 1, pfr) ){ if(t2 == '\n') //读到换行符为止 { break; }} fwrite(&t2, 1, 1, pfw); //写入换行符,防止改变格式 } else if(t2 == '*') // 读到了/*注释 { while( fread( &t2, 1, 1, pfr) ){ if(t2 == '*') //没读到*就一直向后读 { fread(&t2, 1, 1, pfr); if( t2 == '/') //读到了*/{ break;} else //这句话是为了防止结尾的地方有两个*连在一起{ fseek( pfr, -1, SEEK_CUR); //如果*后面不是/,就把指针向后移动一位继续寻找*} }} } else { fwrite(&t1, 1, 1, pfw); //如果只读到一个'/'就把上两个读过的都写入 fwrite(&t2, 1, 1, pfw); }} else if(t1 == '\"') //“” 里面的所有内容都写进去{ fwrite( &t1, 1, 1, pfw); while( fread( &t1, 1, 1, pfr) ) { fwrite( &t1, 1, 1, pfw); if(t1 == '\"'){ break;} }} else{ fwrite(&t1, 1, 1, pfw); // 如果读不到'/'就一直写} } fclose(pfr); fclose(pfr);}
说实话这个程序费了我不少脑筋,其实很早就写好了,但是对于程序中有这种注释“ /************/ ”的就无力了,究其原因就是对于后面三个**/结尾,看到了有*以后,又看到一个*,再循环,就读不到‘*’了,于是乎修改了一下,找个一个库函数fseek,可以调整文件指针的位置,问题就好办了,只要看到有一个' * '后面不是'/'的就把文件指针向前移动一位,这样,不管多复杂的注释就都能消掉了
0 0
- 编写一个C程序删除一个文件的所有注释
- 编写一个删除C语言程序中所有注释语句的程序
- C程序设计语言练习1-23 编写一个删除C语言程序中所有的注释语句
- 编写一个删除c语言中的注释语句/* */的程序
- 编写一个删除C语言程序中所有注释语句,正确处理带引号的字符串与字符常量
- 练习1-23 编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量
- 编写一个删除C语言源程序中的所有注释语句,要正确处理带引号的字符串和字符常量。
- 【1-23】编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。再c语言中,注释不允许嵌套。
- 编译原理作业:编写一个程序,使之将一个C程序除注释之外的所有保留字全部大写
- 用C语言编写一个去除C代码中所有的注释的部分
- 删除一个文件夹下的所有文件
- 删除一个目录下的所有文件
- 展示编写的一个有趣C程序
- 编写一个程序,它读取一个文件以判断其中的字节数,然后使用0覆盖所有的字节
- 编写打印出一个单链表的所有元素的程序
- C语言 递归地删除一个指定目录下所有指定类型的文件
- 一个删除文件的Python程序
- 删除一个文件目录下的所有文件
- 设计模式之——单例模式(Singleton)的常见应用场景
- MSMQ-发送消息到远程专用队列path格式
- 十大教养,让你气度非凡!
- 开始学数据结构——(三):插入排序
- android CTS Test
- 编写一个C程序删除一个文件的所有注释
- JAVA设计模式(02):创建型-抽象工厂模式(Abstract Factory)
- Let's go!
- Poppler 及 Poppler-Qt4 在Windows下基于MinGW的静态编译 - Poppler Qt4
- Xcode非ARC项目中设置部分文件ARC支持
- Thread学习(一)
- 经典文章
- bootstrap 导航栏及所在位置
- gcc C语言中变量定义的位置问题