任务和代码:读入一个C程序,输入m、n两个数字,从第m行起的n行代码将作为注释使用(即在这些行前面加上”//”),新程序保存到另一个.c文件中。
/*
文件名:main.c
作者:小风景
完成日期:2016.7.12
问题描述:读入一个C程序,输入m、n两个数字,从第m行起的n行代码将作为注释使用(即在这些行前面加上”//”),新程序保存到另一个.c文件中。
程序输出:
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void translateformat(int m,int n);
void showprogram(char *source);
int main()
{
int m = 0;
int n = 0;
char targrt[20] = "target.c";
printf("请输入需要注释的范围m-n:");
scanf("%d %d",&m,&n);
translateformat(m,n);
printf("经过处理后的程序:\n");
showprogram(targrt);
return 0;
}
void translateformat(int m , int n)
{
int number = 0;
char source[20] = "source.c";
char targrt[20] = "target.c";
char info[1024] = {0};
FILE *sourfp = NULL;
FILE *destfp = NULL;
if((sourfp = fopen(source,"r")) == NULL)
{
printf("open %s file error!\n",source);
exit(1);
}
if((destfp = fopen(targrt,"w")) == NULL)
{
printf("open %s file error!\n",targrt);
exit(1);
}
while(fgets(info,sizeof(info),sourfp))
{
number++;
if(number >= m && number <= n)
{
fputs("//",destfp);
}
fputs(info,destfp);
}
fclose(sourfp);
fclose(destfp);
}
void showprogram(char *source)
{
char info[1024] = {0};
FILE *fp = NULL;
if((fp = fopen(source,"r")) == NULL)
{
printf("open %s file error!\n",source);
exit(1);
}
while(fgets(info,sizeof(info),fp))
{
printf("%s",info);
}
}
程序运行结果:
总结:这个程序直接由上一个程序改造而来,相对较为简单,只需要读到特定的函数,然后将注释符和该行的数据一起输入新文件,然后在显示在界面上。