将整数值传递给系统唤醒命令

时间:2015-12-22 08:23:05

标签: c++

有人可以告诉我如何将整数值传递给命令语句。

int lf,ff;
string cmd,filename;
cmd = "catdcd -o -otype frame.xyz -first "+lf+" -last "+ff+" "+filename+"";
system((cmd).c_str());
  

错误:不匹配的类型'const __gnu_cxx :: __ normal_iterator< _Iterator,_Container>'和'int'

我刚尝试使用......

cmd = "catdcd -o -otype frame.xyz -first "lf" -last "ff" "+filename+"";

但最终出现了另一个错误。

  

错误:无法将'std :: string {aka std :: basic_string}'转换为'char *'以将参数'1'转换为'int sprintf(char *,const char *,...)'

请帮忙。我必须使用循环为我的程序增加lfff的值。

2 个答案:

答案 0 :(得分:0)

我是C ++的新手,所以我不知道最好的方法是什么,但这应该有效。

#include<sstream>

stringstream ss;
ss << "catdcd -o -otype frame.xyz -first " << lf << " -last " << ff << " " << filename;
string cmd = ss.str();

答案 1 :(得分:0)

如果您使用的是C ++ 11,则可以使用to_string()函数,例如

int lf, ff;
string cmd, filename;
cmd = "catdcd -o -otype frame.xyz -first " + to_string(lf) + " -last " + to_string(ff) + " " + filename + "";
system((cmd).c_str());

应该做的工作。