写了个代码,希望采纳,等分哦。这个代码还有问题,比如比较字符串后面还有多个6,比如一行数据多余1024,这些需要你自己动手实现。
记住把文件的绝对路径改成你自己的,我是在linux下写的。
#include <stdio.h>
#include <string.h>
#define bool int
#define false 0
#define true 1
#define MAX_NUM 1025
int main(int argc,char **argv)
{
/*fileSrc是查找文件的绝对路径*/
const char *fileSrc = "/home/xxx/workspace/c/xxx.text";
/*fileSave是找到合适字符串后保存文件的绝对路径*/
const char *fileSave = "/home/xxx/workspace/c/aaa.text";
const char *flagString = "66666";
FILE *fp_src = NULL,*fp_save;
char buf[MAX_NUM] = {0};
bool flag = false;
fp_src = fopen(fileSrc,"r");
if(fp_src == NULL)
return -1;
while(fgets(buf,sizeof(buf),fp_src) != NULL)
{
printf("buf= %s",buf);
if(flag == true)
{
fp_save = fopen(fileSave,"w+");
if(fp_save == NULL)
{
return -1;
}
fwrite(buf,1,sizeof(buf)-1,fp_save);
fclose(fp_save);
break;
}
if(0 == memcmp(buf,flagString,strlen(flagString)))
{
flag = true;
}
memset(buf,0,sizeof(buf));
}
fclose(fp_src);
return 0;
}