C++ 标准库 <cwchar>

<cwchar> 是 C++ 标准库中的一个头文件,提供了处理宽字符(wchar_t)和宽字符串的函数。这些函数大部分来自 C 标准库的 <wchar.h>,用于处理宽字符的输入输出、内存操作、字符串操作和其他与宽字符相关的功能。

<cwchar> 头文件常见函数:

宽字符输入输出:

fgetwc:从文件流中读取一个宽字符。

fputwc:向文件流中写入一个宽字符。

fgetws:从文件流中读取一个宽字符串。

fputws:向文件流中写入一个宽字符串。
宽字符串操作:

wcscpy:拷贝宽字符串。

wcslen:获取宽字符串的长度。

wcscmp:比较两个宽字符串。

wcsncpy:拷贝指定长度的宽字符串。
宽字符分类和转换:

iswalpha:判断宽字符是否为字母。

iswdigit:判断宽字符是否为数字。

towlower:将宽字符转换为小写。

towupper:将宽字符转换为大写。
宽字符格式化输入输出:

wprintf:宽字符格式化输出。

wscanf:宽字符格式化输入。

swprintf:将格式化宽字符写入宽字符串。

swscanf:从宽字符串中读取格式化宽字符。

示例1:

#include <cwchar>

#include <iostream>

int main() {

// 使用 fputws 和 fgetws 进行宽字符串输入输出

const wchar_t *filename = L"example.txt";

FILE *file = std::fopen("example.txt", "w");

if (file) {

std::fputws(L"Hello, 世界!\n", file);

std::fclose(file);

}

file = std::fopen("example.txt", "r");

if (file) {

wchar_t buffer[256];

if (std::fgetws(buffer, 256, file)) {

std::wcout << L"Read from file: " << buffer;

}

std::fclose(file);

}

return 0;

}

示例2:

#include <cwchar>

#include <iostream>

int main() {

wchar_t ch = L'A';

// 判断宽字符是否为字母

if (std::iswalpha(ch)) {

std::wcout << ch << L" is an alphabetic character." << std::endl;

}

// 判断宽字符是否为数字

ch = L'9';

if (std::iswdigit(ch)) {

std::wcout << ch << L" is a digit." << std::endl;

}

// 宽字符转换为小写

ch = L'G';

wchar_t lower_ch = std::towlower(ch);

std::wcout << L"Lowercase of " << ch << L" is " << lower_ch << std::endl;

// 宽字符转换为大写

ch = L'a';

wchar_t upper_ch = std::towupper(ch);

std::wcout << L"Uppercase of " << ch << L" is " << upper_ch << std::endl;

return 0;

}

相关推荐
xin_nai2 分钟前
LeetCode热题100(Java)(3)滑动窗口
算法·leetcode·滑动窗口
Cando学算法3 分钟前
回声服务器项目
linux·开发语言·c++·计算机网络·ubuntu
宝耶3 分钟前
[特殊字符] 操作日志模块复习笔记
java·开发语言·jvm
不想写代码的星星3 分钟前
我写的代码竟然敢和我比摸鱼?C++ 延迟计算那些事儿
c++
好好研究4 分钟前
Java基础学习(十三):IO流基础
java·开发语言·学习·io流
知识分享小能手11 分钟前
R语言入门学习教程,从入门到精通,R语言传统绘图系统 - 完整知识点与案例代码(2)
开发语言·学习·r语言
代龙涛16 分钟前
WordPress archive.php 分类与归档页面开发指南
开发语言·后端·php·wordpress
格林威18 分钟前
面阵相机 vs 线阵相机:堡盟与大恒相机选型差异全解析 附C++ 实战演示
开发语言·c++·人工智能·数码相机·计算机视觉·视觉检测·工业相机
黎阳之光19 分钟前
视频孪生赋能智慧能源园区:黎阳之光打造全域数智化新标杆
大数据·人工智能·算法·安全·数字孪生
xyq202421 分钟前
相邻节点迭代器
开发语言