问题描述
- 如何在工程目录下读取.c的源文件
-
如何在工程目录下读取.c的源文件 然后分析文件中是否有“/* ”“//”
解决方案
#include
int main()
{
FILE *fp,*fp1;
char str[99]="";
int i=0;
fp=fopen("test.c","r"); //要打开的源文件
fp1=fopen("new.c","w"); //另存为
while(fgets(str,99,fp)!=NULL)
{
for(i=0;i<99;i++)
if(str[i]=='/'&&str[i-1]=='/'){str[i-1]='n';str[i]='';break;}
fputs(str,fp1);
}
fcloseall();
return 0;
}
如果有/* */块注释的话,用这个
#include
#include
int main()
{
FILE *fp,*fp1;
char str[99]="",str1[99]="";
int i,j,no=0;
fp=fopen("test.c","r"); //要打开的源文件
fp1=fopen("new.c","w"); //另存为
while(fgets(str,99,fp)!=NULL)
{
for(i=0;i<99;i++)
{
if(str[i]=='/'&&str[i-1]=='/')
{str[i-1]='n';str[i]='';}
if(str[i]=='*'&&str[i-1]=='/')
{str[i-1]='';no=1;fputs(str,fp1);}
if(str[i]=='/'&&str[i-1]=='*')
{
for(j=0;j<98-i;j++){str[j]=str[i+j+1];}
str[j]='';
no=0;
}
}
if(no==0)fputs(str,fp1);
}
fcloseall();
return 0;
}
解决方案二:
找到源文件路径进行读取就行了,,然后在读取时判断是否有这些字符没有就可以了,可以设置一个变量,初值为0,有就置1,没有就0,就可以了,也可以用变量来统计他们出现的次数,如果结果为0,就没有,大于0就有这些字符呗
解决方案三:
.c 源文件,是以文件的形式存在的。工程所在目录知道不?如果知道,直接按文件进行读取就行了。
不知道你的具体问题在哪里!
解决方案四:
http://ask.csdn.net/questions/156984
解决方案五:
这个.C文件应该是以文本的方式保存的,可以直接读取的,分析文件可以用正则等方式。
解决方案六:
- 读取一个.C文件,删除该文件中所有的注释语句。然后写入到新的.C文件里。
要求: - 删除注释语句功能采用动态链接库形式
解决方案七:
#include
int main()
{
FILE *fp;
char buf[100000],ch,flag2;
int i,flag1=0;
if((fp=fopen("带?注痢?释酣?文?件t.c","r"))==NULL)
{
printf("can't open file");
exit(1);
}
buf[0]=fgetc(fp);
i=1;
while((ch=fgetc(fp))!=EOF)
{
buf[i]=ch;
if(buf[i-1]=='/'&&ch=='*')
{
flag1=1;
i--;
}
if(flag2=='*'&&ch=='/')
{
flag1=0;
i--;
}
if(buf[i-1]=='/'&&ch=='/')
{
flag1=1; -
i--;
}
if(flag2=='/'&&ch=='n')
{
flag1=0;
i--;
}
flag2=buf[i];
if(flag1==0)
i++;
}
buf[i]='';
fclose(fp);
if((fp=fopen("带?注痢?释酣?文?件t.c","w+"))==NULL)
{
printf("can't open file");
exit(1);
}
fputs(buf,fp);
fclose(fp);
return 0;
}
时间: 2024-11-07 01:25:59