fopen以只读的方式打开一个文件,fopen创建并打开另一个文件,利用fgets将每一行的内容取出来处理一下放到另一个文件中。
运行前:
运行后:
可以看到一下处理了33个.c文件,生成了33个.h文件。每个文件每行内容将17、18、37、38、57、58、77、78位的0变成了1。
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h> /* See NOTES */
#define NUM_FLAG 33
int main(int argc, char **argv)
{
FILE *fp;
FILE *fp1;
char temp[512];
int result;
char *p;
int len;
char name1[10];
char name2[10];
int i;
for (i = 1; i < NUM_FLAG+1; i++)
{
sprintf(name1,"%d.c", i);
sprintf(name2,"%d.h", i);
printf("%s ===> %s\n", name1, name2);
if ((fp = fopen(name1, "r")) == NULL)
{
perror("fopen");
return -1;
}
if ((fp1 = fopen(name2, "w+")) == NULL)
{
perror("fopen");
return -1;
}
while (fgets(temp, 512, fp) != NULL)
{
if (strncmp(temp, "0X", 2) == 0)
{
temp[17] = 'f';
temp[18] = 'f';
temp[37] = 'f';
temp[38] = 'f';
temp[57] = 'f';
temp[58] = 'f';
temp[77] = 'f';
temp[78] = 'f';
}
fprintf(fp1,"%s",temp);
}
fclose(fp);
fclose(fp1);
}
return 0;
}