C++取出string的一部分以及int型转成string类型
在实际应用中,对文件的操作是十分频繁的,我们需要对文件进行拷贝,重命名等操作,这是就需要获取文件的绝对路径,一般情况下,该路径是以字符串的形式存储的,如果我们需要对文件进行重命名等,就需要对绝对路径这个字符串进行处理,比如获取这个字符串的某个位置中的一个子字符串等,本片博客针对今天用到的部分字符串的操作函数进行记录,以便以后再次用到的时候查阅使用,同时,我在写程序的过程中也参考了许多网上的博客等资料,希望自己的记录有朝一日也可以帮助到其他人。
首先在windows系统下,采取以下的命令,可以将当前文件夹下以及子文件夹下的所有jpg文件的绝对路径写到temp.set文件之中,那么我们就可以依次读取set文件中的每一行来获取每个jpg的文件名,如下所示的例子,那么接下来就是对于这个字符串的处理了。
1 dir *.jpg /b/s > tmp.set
1 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.416333_14.jpg 2 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.416405_19.jpg 3 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.416566_14.jpg 4 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.416878_17.jpg 5 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.417536_14.jpg 6 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.417708_21.jpg 7 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.417795_21.jpg 8 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.418242_14.jpg 9 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.418536_7.jpg 10 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.418560_14.jpg 11 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.418647_14.jpg 12 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.418717_21.jpg 13 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.418840_14.jpg 14 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.419457_14.jpg 15 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.419584_21.jpg 16 D:VideoRetrieval测试结果 esult_case220160419095729009-1_[362,5,733,480].jpgall_result0.419691_14.jpg
首先需要将该文件读入至内存中,如下所示,可以定义一个string的vector,然后首先将文件的绝对路径读入至一个char型的数组中,在读入的时候需要注意,要跳过空行,以及要将读取的每一行最后的换行符除掉,换成' '以标志该字符串的结束,由于windows系统的换行符是 ,因此需要将 与 一次去掉,并添加上' ',然后将转换好的字符串pushjinruvector中。
1 std::vector<std::string> vecRes; 2 FILE*pfin = fopen(strFN.c_str(), "rb"); 3 char as8Buf[2048] = {0}; 4 while(NULL != fgets(as8Buf, 2048, pfin)) 5 { 6 if(as8Buf[strlen(as8Buf)-1] == ' ') 7 { 8 as8Buf[strlen(as8Buf)-1] = '