我尝试在system()函数的帮助下运行命令,转发参数如下面的代码:
std::stringstream volume_control;
int volume_value = 5;
volume_control << "/usr/bin/amixer cset numid=1 " << volume_value << std::endl;
system(volume_control.str());
它没有用,因为std :: stringstream转换为const char *失败。
我知道在std :: string的情况下我有方法std :: c_string()并且如果我正确它它返回我需要的const char *类型,但在这种情况下stringstream该方法不存在。那该怎么办?
答案 0 :(得分:4)
volume_control.str()
会返回std::string
类型。您需要在其上调用std::string::c_str()
或std::string::data()
方法。
谷歌搜索很容易就能给你答案。
system(volume_control.str().c_str());
答案 1 :(得分:0)
您应该使用从string
方法返回的str
上的c_str方法。
system(volume_control.str().c_str());
答案 2 :(得分:0)
您可以参考此链接 stringstream, string, and char* conversion confusion
mvn versions:update-parent -DparentVersion=1.2.3