#include
#include
#include
#define STR_LEN 400
void main()
{
FILE *fpr, *fpw;
char ch, strline[STR_LEN + 1];
int i=0,p=0,q=0;
bool bFind = false, bEnd = false;
if ((fpr=fopen("c:\\c.c","r")) == NULL)
{
printf("open file fail!");
exit(0);
}
if ((fpw=fopen("c:\\c_new.c","w")) == NULL)
{
printf("write file fail!");
exit(0);
}
/*
判断文件结束 用 while(!feof(fpr)) 不是最安全的方式
可以用 while (fgets(strline, sizeof(strline), fpr) != NULL) { ... } 代替
*/
while(!feof(fpr))
{
//read a line
//fscanf("%s\n", fpr); //也可以读取一行,但前提是这一行中没有空格
fgets(strline, sizeof(strline), fpr);
p = 0;
q = strlen(strline);
bEnd = false;
for (i=0; strline[i]!='\0'; i++)
{
//find '//'
if (!bFind && strline[i] == '/' && strline[i+1] == '/')
{
p = i;
bFind = true;
bEnd = true;
break;
}
//find '/*'
if (!bFind && strline[i] == '/' && strline[i+1] == '*')
{
p = i;
bFind = true;
}
// find '*/'
if (bFind && strline[i] == '*' && strline[i+1] == '/')
{
q = i+2;
bEnd = true;
}
}
//delete row
if (bFind)
{
for (i=p; i
{
strline[i] = ' ';
}
if (bEnd)
{
bFind = false;
strline[i-1] = '\n';
}
}
printf("%s", strline);
fputs(strline, fpw);
}
fclose(fpr);
fclose(fpw);
system("pause");
}