你能在c+;中的参数中使用变量吗+;? 我正在制作一个简单的MP3播放器,我想让用户输入作为C++中McSimStEngScript函数的一部分,用户可以输入MP3文件名,并将其附加到McSimStEngRead参数。我的代码如下 string x; mciSendString(_T("open \"x\" type mpegvideo alias mp3"), NULL, 0, NULL);

你能在c+;中的参数中使用变量吗+;? 我正在制作一个简单的MP3播放器,我想让用户输入作为C++中McSimStEngScript函数的一部分,用户可以输入MP3文件名,并将其附加到McSimStEngRead参数。我的代码如下 string x; mciSendString(_T("open \"x\" type mpegvideo alias mp3"), NULL, 0, NULL);,c++,C++,你看,显然尝试\“x\”是不起作用的。。。字符串x是我计划使用cin.get让用户输入mp3文件名的位置。T代表文本。请对我放松点,因为我是一个noob。std::stringstream中的应该是连接一些字符串的熟悉方法 std::stringstream x; //put all the things you need in x << "open " << x << " type mpegvideo alias mp3&quo

你看,显然尝试
\“x\”
是不起作用的。。。字符串x是我计划使用cin.get让用户输入mp3文件名的位置。T代表文本。请对我放松点,因为我是一个noob。

std::stringstream
中的
应该是连接一些字符串的熟悉方法

std::stringstream x;
//put all the things you need in
x << "open " << x << " type mpegvideo alias mp3";
mciSendString(x.str().c_str(), NULL, 0, NULL);
std::stringstream x;
//把你需要的东西都放进去

我找到了做这件事的方法。根据@Remy的回答,我连接了字符串并使用了
c_str()
函数。无论如何感谢您的帮助。

也许您可以使用append方法来构造整个字符串??或者(哪个
std::format
基于哪个)?或或者在使用普通的
+
操作符创建字符串时只在适当的位置构造?什么是
\u T()
?@πνταῥεῖ •
\T(“string”)
是一个Windows宏,如果启用了宽字符(Windows上的UTF-16),它会追加
L
,或者只追加字符串(微软称之为ANSI模式,尽管讽刺的是,字符集不是ANSI)。@Ejay我知道,但操作是否正确?这限制了可以放置在那里的内容,因此传递一些可变构造的字符串必须以不同的方式传递给
mciSendString()
,而根本不使用
\u T()
。不能对非文字字符串使用
\u T()
宏。如果您是为Unicode编译,
mciSendString()
将调用
mciSendStringW()
,它需要一个
wchar\t
字符串。使用
mciSendStringA()
作为
char
字符串:
mciSendStringA(x.str().c_str(),…)已修复,但保留为宏,因为我认为不选择wide/ansi版本是更好的做法,因为它可能会更改,并且两者不应混合。要使其完全适用于项目中的当前编码,请改用
std::basic_stringstream