发布网友 发布时间:2022-04-22 20:58
共2个回答
热心网友 时间:2023-10-28 15:57
//---------------------------------------------------------------------------
/*将c盘根目录下的一个指定的文件的注释放到c:\newfile.txt中。调试通过,运行时请在程序名后输入指定文件的名称。先编译连接生成exe程序,然后在cmd窗口里运行。有问题加我q23824056*/
#pragma hdrstop
//---------------------------------------------------------------------------
#include<stdio.h>
#include<string.h>
#pragma argsused
int main(int argc, char* argv[])
{
FILE *fp1, *fp2;
int iLen;
char ch;
char *ptr, *ptr1, pValue[512];
char szFilename[100];
char szLine[1024];
if(argc != 2)
{
printf("Usage : %s XXXX(被操作文件名)\n",argv[0]);
return -1;
}
memset(szFilename, 0, sizeof(szFilename));
sprintf(szFilename,"c:/%s",argv[1]);
printf("Filepassname:[%s]\n",szFilename);
if((fp1=fopen(szFilename,"r+"))==NULL)
{
printf("Open file error!Please Check!\n");
return -1;
}
if((fp2=fopen("c:/newfile.txt","w+"))==NULL)
{
printf("Open Newfile error!Please Check!\n");
return -1;
}
fseek(fp1, 0, SEEK_SET);
while(!feof(fp1))
{
memset(szLine, 0, sizeof(szLine));
fgets(szLine, 1024, fp1);
if((ptr=strstr(szLine, "/*"))==NULL)continue;
if((ptr1=strstr(ptr, "*/"))!=NULL)
{
iLen=ptr1-ptr-2;
memset(pValue, 0, sizeof(pValue));
memcpy(pValue, ptr+2, iLen);
fputs(pValue, fp2);
continue;
}
else{
fputs(ptr, fp2);
}
fgets(szLine, 1024, fp1);
if((ptr=strstr(szLine, "*/"))==NULL)
{
fputs(szLine, fp2);
}
else
{
iLen=ptr-szLine;
memset(pValue, 0, sizeof(pValue));
memcpy(pValue, szLine, iLen);
fputs(pValue, fp2);
}
}
fclose(fp1);
fclose(fp2);
return 0;
}
//---------------------------------------------------------------------------
热心网友 时间:2023-10-28 15:57
C语言的注释比较难去,因为可能会出现下面的情况
/*xxxxx/*xxxxx*/
或者
/*xxxxx*/xxxxx*/
比较难处理