这是一个非常简单的问题,我觉得它很愚蠢,但我很紧张,我需要弄清楚:)
我只需要知道如何创建一个包含文本和其他变量的字符串.例如在Java中,我可以这样做:
String someString;
for(int i = 0; i>10; i++){
someString = ("this text has printed " + i + " times"); //how do I create this line in C++?
System.out.println(someString);
i++;
}
Run Code Online (Sandbox Code Playgroud)
编辑4:
好吧,Rahul G在下面的回答非常好,并且程序编译好了,但是当我运行它而不是获取我想要的文件名字符串时,我得到了一堆数字.例如:<< "frame " << i << " .jpg"创建:"013679000.jpg"而不是"frame 0.jpg"就像我想要的那样.有什么想法吗?
for(int i = 0; frames; i++)
{
frame = cvQueryFrame(capture);
std::string s = static_cast<std::ostringstream &>(std::ostringstream() << argv[1] << i << " .jpg").str();
cvSaveImage(s.c_str(), frame);
}
Run Code Online (Sandbox Code Playgroud)
rek*_*o_t 12
你可以使用stringstreams:
for (int i = 0; i < 10; i++) {
std::ostringstream ss;
ss << "this text has printed " << i << " times";
std::cout << ss.str() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
Java的:
int i = 5;
double d = 2.23606798;
String s = "Square root of "+i+" is "+d;
Run Code Online (Sandbox Code Playgroud)
C++:
int i = 5;
double d = 2.23606798;
std::ostringstream oss;
oss << "Square root of " << i << " is " << d;
std::string s = oss.str();
// If you need C style string...
char const *s0 = s.c_str();
Run Code Online (Sandbox Code Playgroud)
请注意,std::ostringstream该类位于<sstream>标题中.
编辑:
你的代码(更正):
for(int i = 0; frames; i++) {
frame = cvQueryFrame(capture);
std::ostringstream oss;
oss << "frame " << i << " .jpg";
cvSaveImage(oss.str().c_str(), frame);
}
Run Code Online (Sandbox Code Playgroud)