2012七、打开带注释的c语言程序文件,显示过滤掉注释后的文件内容
注释方式有两种:1、所以“//”进行单行注释
2、使用“/*”开始,“*/”结束进行多行注释
#include<stdio.h>
int main(){
FILE * fptr=fopen("D:/桌面/test.txt","r");
if(fptr==NULL){
printf("文件打开失败\n");
return 1;
}
FILE * fcopyptr=fopen("D:/桌面/test3.txt","w");
if(fcopyptr==NULL){
printf("文件打开失败\n");
fclose(fptr);
return 1;
}
char ch;
while((ch=fgetc(fptr))!=EOF){
if(ch=='/'){
if((ch=fgetc(fptr))=='/'){
while((ch=fgetc(fptr))!=EOF&&ch!='\n'){}//一直循环来跳过注释里的内容
fputc(ch,fcopyptr);//打印在//注释后的'\n'
}else if(ch=='*'){
while((ch=fgetc(fptr))!=EOF&&ch!='*'||(ch=fgetc(fptr))!=EOF&&ch!='/');//一直循环来跳过注释里的内容
}
//如果/下一个不是/和*,就直接打印
else{
fputc('/',fcopyptr);
fputc(ch,fcopyptr);
}
}
else{
fputc(ch,fcopyptr);
}
}
fclose(fptr);
fptr=NULL;
fclose(fcopyptr);
fcopyptr=NULL;
}