我想在C++中使用Qt做这样的事情:
int i = 5;
QString directory = ":/karim/pic" + i + ".jpg";
Run Code Online (Sandbox Code Playgroud)
在哪里+意味着我想连接字符串和整数(也就是说,directory应该是:/karim/pic5.jpg).我怎样才能做到这一点?
Seb*_*zus 32
对于像这样的事情,Qt的习惯是arg()QString 的功能.
QString directory = QString(":/karim/pic%1.jpg").arg(i);
Run Code Online (Sandbox Code Playgroud)
Cub*_*bbi 11
(编辑:这是在提到QString的编辑之前的问题的答案.对于QString,请参阅更新的答案)
这可以使用C++ 11作为非常类似的单行完成:
int i = 5;
std::string directory = ":/karim/pic" + std::to_string(i) + ".jpg";
Run Code Online (Sandbox Code Playgroud)
对于较旧的编译器,它可以用Boost代替:
int i = 5;
std::string directory = ":/karim/pic" + boost::lexical_cast<std::string>(i) + ".jpg";
Run Code Online (Sandbox Code Playgroud)
但经典的方法是使用字符串流对象.
int i = 5;
std::ostringstream oss;
oss << ":/karim/pic" << i << ".jpg";
std::string directory = oss.str();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25392 次 |
| 最近记录: |