C++如何在文件中根据字符串匹配定位到相应位置

2024年12月01日 18:36
有3个网友回答
网友(1):

好办得很!读/写打开文件,一次读要找的字符串那么长的一串字符放在一个字符数组里,然后与特定的字符串比较,相等时停止读取;再然后用随机取存函数将文件指针向负方向移动刚读取的字符串那么长的字符数即定位到了你需要的位置。再然后,从这里起就修改文件了……

网友(2):

关键是看你的数据是不是采用二进制文件方式保存的,如果是的话,则可以借助结构体再配合文件指针流成员函数来操作,比如seekg,tellp,seekp成员函数,这些函数都可以文件指针自由来回移动(定位到想要的地方去)。

网友(3):

读/写方式打开文件,一次读要找的字符串长度的一串字符放在一个字符数组里,与特定的字符串比较,相等时停止读取;然后用随机取存函数将文件指针向负方向移动刚读取的字符串那么长的字符数即定位到了需要的位置。
FILE *fp_statfile=fopen("x264_output.txt","rb");
CString filecontent("");
//文件内容读入内存
while(!feof(fp_statfile)){
filecontent.AppendChar(getc(fp_statfile));
}
//查找X264的SSIM数值
//X264特征字符串
CString featurestr("SSIM Mean Y:");
//查找,返回字符串位置
int paraloc=filecontent.Find(featurestr);
CString parastr;
//找到了的话
if(paraloc!=-1){
//跳过特征字符串,提取5位
parastr=filecontent.Mid(paraloc+featurestr.GetLength(),5);
TRACE("%s\n",parastr);
}
fclose(fp_statfile);
C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 ——面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一。