打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
3.4 char类型

chartype.cpp: the char type

#include <iostream>

int main()
{
  using namespace std;
  
  char ch;
  cout << "Enter a character: " << endl;
  cin >> ch;
  
  cout << "Hola! ";
  cout << "Thank you for the " << ch << " character." << endl;
  
  return 0;
}

1. 编译输出:

Enter a character:
C
Hola! Thank you for the C character.

2. 代码详解:

  • char类型是专为存储字符而设计的,如字母和数字。

    通过使用字母的数值编码来存储字母。因此,char类型是另一宗整型。

    char足够长,能够表示计算机系统中所有基本字符—字母、数字、标点符号等。实际上,很多系统支持的字符都不超过128个,因此使用一个字节就可以表示所有的符号。char最常用来处理字符,也可以将它用做比short更小的整型。

    美国最常用的符号集是ASCII字符集,字符集中的字符用数值编码(ASCII码)表示。如A-65,M-77。

  • cin和cout的行为都是由变量类型引导的。

    输入时,cin将键盘输入的M转换为77;输出时,cout将值77转换为所显示的字符M。


morechar.cpp: the char type and int type contrasted

#include <iostream>

int main()
{
  using namespace std;
  
  char ch = 'C';
  int i = ch;
  cout << "The ASCII code for " << ch << " is " << i << endl;
  
  cout << "Add one to the character code: " << endl;
  ch = ch + 1;
  i = ch;
  cout << "The ASCII code for " << ch << " is " << i << endl;
  
  cout << "Displaying char ch using cout.put(ch): ";
  cout.put(ch);
  
  cout.put('!');
  cout << endl << "Done" << endl;
  
  return 0;
}

1. 编译输出:

The ASCII code for C is 67
Add one to the character code:
The ASCII code for D is 68
Displaying char ch using cout.put(ch): D!
Done

2. 代码详解:

  • C++对字符用单引号('M'),对字符串使用双引号("The ASCII code ...")。

    'M'表示字符M的数值编码,因此将char变量ch初始化为'M',将把c设置为77。然后,程序将同样的值赋给int变量i,这样ch和i的值都是77。接下来,cout把ch显示为M,而把i显示为77。

    由于ch实际上是一个整数,因此可以对它使用整数操作。

  • 成员函数cout.put():显示一个字符。

    类定义了如何表示和控制数据。成员函数归类所有,描述了操纵类数据的方法

    只有通过类的特定对象来使用成员函数,且必须用句点将对象名和函数名称连接起来,如cout.put()。类:ostream,对象:cout,成员函数:put()。句点称为成员运算符

    cout.put()成员函数提供了另一种显示字符的方法,可以替代<<运算符。


bondini.cpp: using escape sequences

#include <iostream>

int main()
{
  using namespace std;
  
  cout << "\aOperation \"HyperHype\" is now activated!\n";
  cout << "Enter your agent code:________\b\b\b\b\b\b\b\b";
  
  long code;
  cin >> code;
  cout << "\aYou entered " << code << "...\n";
  cout << "\aCode verified! Proceed with Plan Z3!\n";
  
  return 0;
}

 1. 编译输出:

Operation "HyperHype" is now activated!
Enter your agent code:123456789
You entered 123456789...
Code verified! Proceed with Plan Z3!

2. 代码详解:

  • 转义字符

    \a表示振铃字符,它可以使终端扬声器振铃。\n表示换行符。\"将双引号作为常规字符,而不是字符串分隔符。

C++转义序列的编码

    可以基于字符的八进制和十六进制编码来使用转义序列。如"hi\x1a there",十六进制编码\x1a表示Ctrl+Z。


  • 知识扩展:

    与int不同,char在默认情况下既不是没有符号,也不是有符号。char是否有符号由C++实现决定,这样编译器开发人员可以最大限度地将这种类型与硬件属性匹配起来。

    char表示数值类型时,unsigned char:[0, 255];char:[-128, 127]。

    wchar_t: 宽字符类型,可表示扩展字符集。它是一种整数类型,有足够的空间,可以表示系统使用的最大扩展字符集。使用wcin和wcout可用于处理wchar_t流。

    bool类型:非零解释为true,零解释为false。bool类型转换为int类型时,字面值true = 1,false = 0。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
​C++Primer plus学习记录第一日.2
C/C++文件流的操作
判断输入的是大写字母还是小写,并转换
178 f0603
C++中的文件输入/输出(3):掌握输入/输出流
cin深入分析(上) - cin输入操作处理(转)_斯莱克威
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服