无法将std :: stringstream <char>转换为const char *

时间:2015-09-03 12:03:13

标签: c++ string

我尝试在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该方法不存在。那该怎么办?

3 个答案:

答案 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