虎鲸图片:文件操作,将一个.c文件1复制到另一个文件2中,要求过滤掉文件1中的注释。注释类型:以注释符开头或者其中的注释。用一个函数完成该功能
来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 01:12:24
29.文件操作,将一个.c文件1复制到另一个文件2中,要求过滤掉文件1中的注释。注释类型:以注释符开头或者其中的注释。用一个函数完成该功能。
#include
/*将一个.c文件1复制到另一个文件2中,要求过滤掉文件1中的注释。
*注释类型:以注释符开头或者其中的注释。用一个函数完成该功能。
*/
main()
{
/*cfPtr1是指向被复制文件的指针,cfPtr2是复制出的文件*/
FILE *cfPtr1,*cfPtr2;
/*ch1,ch2是存储当前字符的变量*/
char ch1,ch2;
/*打开两个文件*/
if((cfPtr1=fopen("clinet1.c","r"))==NULL)
printf("FILE clinet1.c count not be opened\n");
else{
if((cfPtr2=fopen("clinet2.c","w"))==NULL)
printf("FILE clinet2.c count not be opened\n");
else{
fscanf(cfPtr1,"%c%c",&ch1,&ch2);
while(!feof(cfPtr1)){
/*遇到注释符时,跳过同一横中在它之后的字符*/
if(ch1=='/'&&ch2=='/'){
while(ch1!='\n'){
ch1=fgetc(cfPtr1);
}
fprintf(cfPtr2,"\n");
fscanf(cfPtr1,"%c%c",&ch1,&ch2);
}
/*遇到注释符时,跳过其中的内容*/
else if(ch1=='/'&&ch2=='*'){
while(ch1!='*'||ch2!='/'){
ch1=ch2;
ch2=fgetc(cfPtr1);
}
fscanf(cfPtr1,"%c%c",&ch1,&ch2);
}
/*将cfPtr1指向的文件中的内容逐字符复制cfPtr2指向的文件中*/
else{
fprintf(cfPtr2,"%c",ch1);
ch1=ch2;
ch2=fgetc(cfPtr1);
}
}
/*关闭文件*/
fclose(cfPtr2);
fclose(cfPtr1);
}
}
return 0;
}
运行效果如图:
略(输出在文件)