您的位置:首页 > 编程语言 > C语言/C++

c++ for循环中,如何改变字符串变量里的部分值 使之于i 和j 相同步变化?????(即循环用cvLoadImage的path自动改变)

2012-05-26 16:44 92 查看
在工程中,很多时候需要读取文件,而文件名filename或者path是有一定规律的。这就要求当循环时,i发生变化,filename里的一部分也随着变化。

在matlab里,要实现这个功能很方便,可以用int2str(i)实现,将整形的i转成字符型。 那么在c或者c++下呢??最初用itoa,但我在linux下用不了这个函数。所以放弃了。看了很多资料,也没有直接回答的。

摸索了一天,终于解决。我将我的解决思路附下。

我要实现,当for循环时,路径path的值为 /....../01/01.jpg , /....../01/02.jpg, /....../01/03,jpg依次类推,当到01/05.jpg时, 变成/02/01.jpg /02/02.jpg /02/03.jpg...........................剩下的我就不写了。下面是实现代码:

string path = "/ayan/RoiPalmData/00/00.jpg";

string path1 = "/ayan/RoiPalmData/";

string path3 = ".jpg";

for(int i=1; i<9; i++)

for(int j=1; j<6; j++)

{

char name[5] = {path[18], path[19]+i, '/', path[21], path[22]+j};

string path2 = name;

string pathS = path1 + path2 + path3; //拼接

const char *path = pathS.c_str(); //因为调用cvLoadImage时,路径必须是const char*类型的,所以这里进行了转换

cout<<path<<endl;

CreateDate(path);

}

欢迎大家提出意见,或进行修正。这只是一种实现方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐