gpt4 book ai didi

c++ - 无法将参数 'std::basic_string' 的 'const char*' 转换为 '1' 到 'int system(const char*)'

转载 作者:IT老高 更新时间:2023-10-28 21:44:13 25 4
gpt4 key购买 nike

当我尝试编译我的脚本时,我收到此错误:“'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);

也就是说,它接受 const char *

类型的 argumnet

没有转换运算符可以将 std::string 类型的对象隐式转换为 const char * 类型的对象。

尽管如此,类 std::string 有两个函数可以显式地进行这种转换。它们是c_str()data()(最后一个只能用于支持C++11的编译器)

所以你可以写

string name = "john";

system( (" quickscan.exe resolution 300 selectscanner jpg showui showprogress filename '"+name+".jpg'").c_str() );

表达式不需要使用中间变量。

关于c++ - 无法将参数 'std::basic_string<char>' 的 'const char*' 转换为 '1' 到 'int system(const char*)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21589353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com