有人可以告诉我如何将整数值传递给命令语句。
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 *,...)'
请帮忙。我必须使用循环为我的程序增加lf
和ff
的值。
答案 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());
应该做的工作。