当我尝试编译脚本时,收到以下错误消息:“类型'const char *'和'const char [6]'的无效操作数为二进制'operator +'”。这应该是错误:
string name = "john";
system(" quickscan.exe resolution 300 selectscanner jpg showui showprogress filename '"+name+".jpg'");
表达类型
" quickscan.exe resolution 300 selectscanner jpg showui showprogress filename '"+name+".jpg'"
是std::string
。但是功能系统有声明
int system(const char *s);
那就是它接受类型的argumnet const char *
没有转换运算符可以将类型的对象隐式转换为typestd::string
的对象const char *
。
不过,类std::string
具有两个函数来显式执行此转换。它们是c_str()
and data()
(最后一个只能与支持C ++ 11的编译器一起使用)
所以你可以写
string name = "john";
system( (" quickscan.exe resolution 300 selectscanner jpg showui showprogress filename '"+name+".jpg'").c_str() );
表达式无需使用中间变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句