格式化返回字符串C++
Format a return string C++
我想从C++中的一个函数返回一个字符串,该函数是由不同的字符串和一个整数创建的。我想创建一个形式为"ABCDFFFF00230000EFGH"
的字符串。"ABCD"在command[0]
中定义为字符串,"0023"
是由answer
定义的整数,"EFGH"
在command[4]
中定义为串。
我试过:
return "{0}FFFF{1}0000{2}".format(command[0], answer, command[4]);
但这给出了一个错误:
成员引用基类型"const char[18]"不是结构或联合
我尝试过:
return (command[0], "FFFF", answer, "0000", command[4]);
但这只返回command[4]
的值。
我试过:
return (command[0] + "FFFF", answer + "0000" + command[4]);
我还用Python编写了以下代码:
return "{0}FFFF{1}0000{2}".format(command[0], answer, command[4])
这给出了正确的答案。
使用字符串流(需要#include <sstream>
和#include <iomanip>
(。这可能不完全符合格式,但它会让你开始。
std::ostringstream oss;
oss << command[0] << "FFFF" << setfill('0') << std::setw(4) << answer << "0000" << command[4];
return oss.str();
然而,不要只是尝试使用Python的随机方法,因为它们在C++中不太可能工作。做一些适当的研究。