C/C++ 从入门到入门 第二章 2_2 字符, 输入和输出
上一把我们学习了基本数据类型中的整数类型以及浮点数类型他们的关键字和限定关键字, 以及他们的表现形式.
这一次我们继续, 讨论字符类型.
存储方法
首先我们得知道, 字符类型不能直接送到计算机中. 毕竟计算机没有52进制存储, 否则说不定. 如果想要存储, 就一定要以二进制的形式存进去, 至少要以数的形式存进去.
如何将字符存储到计算机中, 成为了一个比较头疼的问题. 在经历了众多科学家的研究以及相关标准委员会的讨论之后, 公布了一个规则, 这个规则表明了什么字符对应到什么数字上. C 语言和C++常用的转换形式, 称为 ASCII.
在 ASCII 中, 规定了 a 这个字符对应于数是 97. A 对应65, 字符"0" 对应是48, 等等.
关键字, 表现形式
我们现在, 只讨论常规字符形式, 对于不常规的, 比如汉字这种字符形式. 目前不进行说明. 因为这个数据类型之前并不存在.
字符数据类型的关键字是 char是Character 取前四个字母的结果.
字符的表现形式是有一对单引号(不是双引号, 不是三个单引号, 不是三个双引号, 也不是1左边的按键反引号)中间包裹着一个或者多个字母数字或其他符号. 例如:
通常, 字符是由一个字母或符号或数字构成的. 但是也有一些特殊的情况. 这里说明公共的特殊情况, 对于规定的特殊情况, 将在具体位置进行具体说明.
转义符号
转义, 即改变原来的含义. 正式介绍之前, 先来个引例尝尝鲜.
初中时代可能背过 陋室铭. 里面有一句:
无丝竹之乱耳, 无案牍之劳形
此外, 邹忌讽齐王纳谏里面也有这样的内容:
吾妻之美我者, 私我也.
可能老师会问, 或者解释, 之的含义: 助词, 本身无意义, 用在句子中, 取消句子的独立性.
比如说: 吾妻之美我者, 私我也, 把之和相关的词语去掉, 就成了吾妻美我, 这句话很好理解, 就是我的妻子称赞我. 话说完了. 加了之以后, "吾妻之美我者" 话就是没说完. 你听了, 就有一种"这件事情的起因...." 对方不说了的那种感觉. 三天三夜睡不着觉. 所以, 之在此处起到了取消句子独立性的作用.
了解以上内容以后, 我们介绍转义符号. 转义符号是回车键旁边的按键(上下左右各位自己看), 是反斜线 "\", 在字符开头出现, 转换了此符号后面跟着的那个字母符号的本来含义. 整体的字符, 我称其为转义字符
比如:
此为转义字符的含义. 下面是几个比较常见的转义字符:
来自博客园 小 天:
在Windows中:
'\r' 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;
'\n' 换行,换到当前位置的下一行,而不会回到行首;
Unix系统里,每行结尾只有“<换行>”,即"\n";Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;Mac系统里,每行结尾是“<回车>”,即"\r";。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
输入和输出
C++ 风格的之前说过, 此处不在赘述, cin 和 cout 的操作方式十分相似, 注意符号朝向.
printf和scanf 函数的第一个参数. 是格式说明符, 程序运行以后, 输入格式和输出格式严格按照说明符执行. 里面留有若干个坑位. 用 "%*" 表示. 坑位专业术语叫做格式控制符. 第二个参数, printf()是坑位要填的值. 对于scanf()来说, 目前理解为这个坑位对应的变量, 但是注意, scanf() 中, 如果需要输入给变量, 必须要在变量的前面加"&" 符号, 称为取地址. 如下:
下面是几个常见的格式控制符.
下面的简单示例展示了输入两个变量,然后算相加结果.