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

3
我尝试使用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个回答

4

你的答案是错误的,请参考 https://dev59.com/MnM_5IYBdhLWcg3wcSx_#1374485 了解详情。 - yaskovdev

0

0
你应该在从 str 方法返回的 string 上使用 c_str 方法。
system(volume_control.str().c_str());

@ForEveR 对不起,你是对的!链接的案例是另一个问题!抱歉并感谢! - TrueY

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接