|
查看: 1430|回复: 6
|
如何用C++ save不同的filename[已解决]
[复制链接]
|
|
|
小弟有个难题,希望各位大大帮忙
问题是酱的:
我有一个loop,每loop 一次就会save 一个image file
每个file name 都不同,比如
第一个file name 是2009-3-26 12:09am
第二个file name 是2009-3-26 12:10am
或者以下的都可以:
第一个file name 是1
第二个file name 是2
依此类推,只要不同名就可以了
目前我做到的只能save 一个fixed 的filename 罢了
打个比如:SaveImage("Resultant.jpg", img);
我想把"Resultant.jpg" 变成一个variable, 每次save image 就有不同的名了
小弟学浅,上网找了很久都找不到
请各位大大指教。。
谢谢。。
[ 本帖最后由 心的太平洋 于 1-4-2009 02:29 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 26-3-2009 11:29 AM
|
显示全部楼层
回复 1# 心的太平洋 的帖子
如果要以时间为文件名, 可以这样做- #include <iostream>
- #include <ctime>
- #include <fstream>
- using namespace std;
- int main()
- {
- time_t mytime;
- struct tm * timeinfo;
- ofstream file;
- //put a loop here if u wan
- time( &mytime);
- timeinfo = localtime( &mytime);
-
- string filename = asctime(timeinfo);
- filename += ".jpg";// or whatever extension u want, .gif? .png? .tiff? .bmp ?????
- file.open(filename.c_str());
- // save ur file
- file.close();
- return 0;
- }
复制代码
[ 本帖最后由 onlylonly 于 26-3-2009 11:32 AM 编辑 ] |
|
|
|
|
|
|
|
|
|
|
发表于 26-3-2009 11:38 AM
|
显示全部楼层
回复 1# 心的太平洋 的帖子
或要以loop的count为名字- #include <iostream>
- #include <sstream>
- #include <fstream>
- using namespace std;
- int main()
- {
- ofstream file;
- for(int i = 0; i < 100 /* or whatever u wan to*/; i++)
- {
- stringstream ss;
- ss << i;
- file.open(ss.str().c_str());
- //save ur file
- file.close();
- }
- return 0;
- }
复制代码 |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 26-3-2009 11:37 PM
|
显示全部楼层
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 28-3-2009 04:03 PM
|
显示全部楼层
我想改一下方法
我的问题是酱的:
我用了一个openCV library,里边有一个function 是save function
CvSaveImage("Resultant.jpg", img);
只要我有这行,我的照片(img)就能Resultant.jpg 这个名字里
我想要把它变成能转换的名字,比如说:1.jpg, 2.jpg
在。net 里, 可以变成(大概如下)
For int i = 0 to i = 2
dim filename as string
filename = i + ".jpg"
saveImage("+filename+", img)
next
如果我要在C++里写,那又如何写呢
请指教。。 |
|
|
|
|
|
|
|
|
|
|
发表于 28-3-2009 06:54 PM
|
显示全部楼层
回复 5# 心的太平洋 的帖子
首先CVSaveImage 这个function的 parameter 为 const char * , 也就是c-string, const CVArr * )
所以你的函数只需要pass一个 c-string 就行了。 先将filename存为string格式, 在意string.c_str() 转换为c string。
代码大概如下
#include <string>
#include <sstream>
......
for( int i = 0; i <= 2; i++)
{
//convert int to string
stringstream ss;
ss << i;
//declare filename var
string filename = ss.str() + ".jpg"
CvSaveImage(filename.c_str() , img);
}
.....
[ 本帖最后由 onlylonly 于 28-3-2009 06:56 PM 编辑 ] |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 28-3-2009 09:47 PM
|
显示全部楼层
回复 6# onlylonly 的帖子
做到了,学到新的东西。。
谢谢onlylonly的指导, 谢谢!! |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|