C创建文本和变量的字符串

新手上路,请多包涵

我正在尝试做一些非常简单的事情,但是,经过一个小时的搜索,我找不到合适的答案,所以我必须遗漏一些相当明显的东西。

我正在尝试动态创建用于 ifstream 的文件名。虽然我知道有多种方法可以做到这一点,但我决定创建一个 std::string,并使用 stringname.c_str 转换为 const。

然而,问题是我需要使用混合变量和预定义文本值来创建字符串。我收到编译器错误,所以这一定是语法问题。

std::string var = "sometext" + somevar + "sometext" + somevar;

谢谢!

原文由 Jack Farrow 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 576
2 个回答

您是否考虑过使用字符串流?

 #include <string>
#include <sstream>

std::ostringstream oss;
oss << "sometext" << somevar << "sometext" << somevar;
std::string var = oss.str();

原文由 mgiuffrida 发布,翻译遵循 CC BY-SA 3.0 许可协议

从 c++14 开始,您可以使用 std::string_literals 中的 std::string 运算符”“s

 #include <string>
using namespace std::string_literals;
std::string var = "sometext"s + somevar + "sometext"s + somevar;

编译器将添加一个 std::string 代替文字,因此您可以使用“+”运算符。

原文由 Autex 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题