《C++程序设计教程》梳理第二章

本文介绍了C++中的基本数据类型,包括字符集、保留字和变量定义规则。讨论了不同数据类型的范围和如何通过sizeof函数获取字节长度。此外,还讲解了变量赋值、初始化、枚举和常量的使用。对于输入/输出(I/O),文章涵盖了流控制,如cin和cout,以及printf和scanf函数的使用,包括格式控制和转换。
摘要由CSDN通过智能技术生成

第二章 基本数据类型与输入/输出

程序中最基本的要素之一就是数据类型,确定了数据类型才能确定变量的空间大小和以它为基础的一系列操作。

字符集与保留字

C++程序是用下列字符所组成的字符集写成的

image-20230709103014522

保留字:预先定义好的标识符,注意我们在设置名字(如函数名、数据名)时不能和保留字相同。

image-20230709103333131

基本数据类型

image-20230709104920191

上图是根据16位计算机分析的范围结果,但其实64位的计算机的范围计算方法是相同的。

获取某数据类型的字节长度可以使用sizeof(数据类型)函数。

变量定义
命名变量名

变量命名要遵守以下规则:

1、不能是保留字

2、第一个字符必须是字母或下划线

3、不要太长,一般不超过31个字符

4、中间不能有空格

5、不能包含". ; ," ’ + -"等特殊符号(只能用英文大小写、数字和下划线)

6、变量名不要和库函数名、类名和对象名相同

变量定义方式

在一个语句中建立多个同一类型的变量:

int a,b,c,d;
float e,f;
变量赋值与初始化
//1、先定义再赋值
int a;
a=1;
//2、定义时直接赋值
int b=2;
//3、定义时初始化多个变量(c初始化了,d没有初始化)
int c=3,d;
typedef

为已有的类型名提供一个同义词。

typedef int INT;
INT a;//其实就是int a

typedef没有定义新数据类型。

字面量
整型数

包括十进制、八进制、十六进制。

实型数

小数、指数(123e5即123*105

单精度float、双精度double、长双精度long double

字符

在内存中,字符数据以ASCII码存储。

ASCII码详细介绍 - 知乎 (zhihu.com)

这篇写得很好,对照表、来源、特性、缺点啥啥都有。

所以字符数据和整型数据之间可以相互赋值:

int a='b';
char c=97;
cout<<a<<endl;
cout<<c<<endl;
结果为:
98//b的ASCII码表示
a//ASCII中97表示的字符
字符串

由一对双引号括起来的字符序列,总以’\0’结束,假如有字符串"HELLO",则内存表示为:

image-20230709112842053

枚举符

定义枚举类型:先写关键字enum,然后是类型名、大括号,大括号里是用逗号隔开的枚举符。

enum COLOR{RED,BLUE,GREEN,WHITE,BLACK};

没有指定枚举值是,默认第一个为0,后面依次+1。

常量

定义时加关键字const,程序中对其只能读不能修改,所以常量定义时必须初始化。

const float pi=3.1415926;

注意:常量的值只能是程序运行前就知道的值。

I/O流控制
I/O的书写格式
int a,b;
cin>>a>>b;
cout<<a<<"+"<<b<<"="<<a+b<<endl;
使用控制符

头文件iomanip

image-20230709114751147

控制浮点数值显示

默认的流输出数值有效位数是6。

setprecision(n)表示有效位数,与fixed合用时可以控制小数点后的位数:

image-20230709115039780

PS1:第二行设置了有效位数为0,但C++最小有效位数是1,所以会被当成1处理。

PS2:小数位数截短显示时,会进行四舍五入

设置值的输出宽度

用setw(n)控制符:

当实际长度>n,按实际长度输出;

当实际长度<n,再数据前补空格来达到长度。

cout<<setw(8)<<10<<endl;
//结果:      10(前面有6个空格)
输出八进制数和十六进制数

同上,在输出数据前写上dec(10)、hec(16)、oct(8)就行。

cout<<oct<<num<<endl;
cout<<hex<<num<<endl;

uppercase控制十六进制的大写输出。

设置填充字符

setfill(要填充哪种字符)

cout<<setfill('*')<<setw(4)<<endl;
//结果:**21
左右对齐输出

用right和left

cout<<right<<setw(5)<<1<<endl;
cout<<left<<setw(5)<<1<<endl;
/*结果:
    1
1    (后有5个空格)*/
强制显示小数点和符号

showpoint

cout<<10.0/5<<endl;
cout<<showpoint<<10.0/5<<endl;
/*结果
2
2.00000*/

加+号:showpos

printf与scanf

#include <stdio.h>

printf

一般格式:printf(格式控制字符串,输出项1,输出项2…)

格式控制字符串中有格式说明和普通字符。

常见的格式说明:

image-20230709133425932

图源【C语言】- printf 和scanf 函数详解! - 知乎 (zhihu.com)

PS:%5d说明是输出宽度为5的整型

int a=65;
char ch='a';
printf("%c,%d,%3c\n",ch,ch,ch);
printf("%c,%d,%3d\n",a,a,a);
/*结果:
a,97,  a
A,65,  65*/

PS:“%-5.3s"解读:”-"表示左对齐,5表示格式宽度,3表示截取字符串中3个字符。

scanf函数

一般格式:scanf(格式控制字符串,地址1,地址2…)

格式说明如上。

int a,b;
scanf("%d %d",&a,&b);

PS:在"%c"格式输入时,空格字符和转义字符都作为有效字符输入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值