char_traits struct 初步学习

本文介绍了C++中的char_traits结构体,它定义了字符的特性并为字符操作提供语义。char_traits用于basic_string和iostream类,提供如eq、lt、compare等方法,允许重载以改变字符串的属性,如大小写敏感性。此外,char_traits隐藏了不同字符集的细节,如EOF值。通过traits,模板编程可以更加通用和灵活。
摘要由CSDN通过智能技术生成

在学习文件读取时碰到文件尾字符 EOF 的问题,顺藤摸瓜找到 char_traits

msdn 上关于 EOF 的说明,就一句话:

Returns the end-of-file (EOF) character.

在注意中提到一句:

A value that represents end of file (such as EOF or WEOF).

意思是 EOF 表示的是文件尾的一个值,对于不同的字符集会对应不同的数值,但对用户来说就隐藏了这种细节。在给出的示例中也说明了这一点:

// char_traits_eof.cpp
// compile with: /EHsc
#include <string>
#include <iostream>

int main()
{
    using namespace std;

    char_traits<char>::char_type ch1 = 'x';
    char_traits<char>::int_type int1;
    int1 = char_traits<char>::to_int_type(ch1);
    cout << "char_type ch1 is '" << ch1 << "' and corresponds to int_type "
         << int1 << "." << endl <<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值