std::wstring格式化
时间: 2023-11-17 15:06:34 浏览: 209
可以使用std::wstringstream来格式化std::wstring。以下是一个简单的例子:
```cpp
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::wstring name = L"张三";
int age = 18;
double height = 1.75;
std::wstringstream ss;
ss << L"姓名:" << name << L",年龄:" << age << L"岁,身高:" << height << L"米。";
std::wstring result = ss.str();
std::wcout << result << std::endl;
return 0;
}
```
输出结果为:
```
姓名:张三,年龄:18岁,身高:1.75米。
```
相关问题
int to std::wstring 怎么做
将整数 (int) 转换为 C++ 标准库 `std::wstring` 类型通常需要通过某种字符串格式化步骤,因为 `int` 直接不是 `wstring` 的数据类型。一种常见的做法是先将 `int` 转换成字符串,然后利用 `std::wstring_convert` 来完成转换。这里是一个简单的例子:
```cpp
#include <locale>
#include <codecvt>
#include <string>
int num = 12345;
std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
std::wstring str_num = conv.to_wstring(std::to_string(num));
```
首先,我们创建了一个 `std::wstring_convert` 对象,指定用于转换的编码(在这个例子中是 UTF-8)。接着,我们将 `int` 转换成 `std::string`,再用 `to_wstring` 函数将其转换为 `wstring`。
std::string 格式化
C++20标准库中引入了std::format函数,可以用于格式化std::string和std::wstring类型的字符串。该函数的原型如下:
```cpp
template<class... Args>
std::string format(std::string_view fmt, const Args&... args);
template<class... Args>
std::wstring format(std::wstring_view fmt, const Args&... args);
template<class... Args>
std::string format(const std::locale& loc, std::string_view fmt, const Args&... args);
template<class... Args>
std::wstring format(const std::locale& loc, std::wstring_view fmt, const Args&... args);
```
其中,第一个参数是格式化字符串,后面的参数是需要格式化的变量。使用时,可以在格式化字符串中使用花括号{}来表示需要替换的变量,例如:
```cpp
std::string name = "Alice";
int age = 20;
std::string result = std::format("My name is {}, and I am {} years old.", name, age);
```
在上面的例子中,花括号{}中的变量会被替换为对应的值,最终得到的result字符串为"My name is Alice, and I am 20 years old."。
需要注意的是,std::format函数只能用于C++20及以上版本的编译器,如果使用的是旧版本的编译器,则需要使用其他的字符串格式化方法。
阅读全文