clock_t,size_t,time_t能够把系统时间和日期表示为某种整数
time data int
结构类型tm把日期和时间以C结构形式保存;
C结构形式保存
struct tm
{
int tm_sec; //second秒,正常范围从0~59,允许至61
int tm_min; //minute分,范围从0~59
int tm_hour; //hours时,范围0~23
int tm_mday; //一个月中的第几天,范围1~31
int tm_mon; //month月,范围从0~11
int tm_year; //自1900年起的年数
int tm_wday; //一周中的第几天,范围从0~6,从星期日起算
int tm_yday; //一年中的第几天,范围从0~365,从1月1日起算
int tm_isdst; //夏令时dayRight save time (dst)
}
日期时间重要函数,所有这些函数都是C/C++标准库的组成部分
int tm_year;; //自1900年起的年数
time_t time(time_t *time);
该函数返回系统的当前日历时间,自1970/01/01经过秒数,函数返回系统的当前日历时间,自1970/01/01日以来经过的秒数,如果系统没有时间,则返回1
每天秒数
秒
1分钟=60秒
1小时=60分钟
1天=24小时
每天的秒数 = 24 * 60 * 60 = 86400
一周7天 = 7 * 86400 = 604800
一个月30天算 30 * 86400 = 2592000
一年 12个月 * 2592000 获得一年的秒数 = 31104000
大约一年有這么多的秒数,那么自1970年/01/01到目前(2017/8) 约47年头 有多少秒
月 47 * 12 = 564;
564 * 2592000 = 1461888000
47 * 31104000 =
char *ctime(const time_t *time);
返回一个表示当地时间的字符串,字符串
char *ctime(const time_t *time);
返回一个表示当地时间的字符串指针char *ctime(const time_t *time) 返回一个表示本地时间字符串指针,
字符串形式day month year hours:minutes:seconds year\n\0换行字符串结束标志;
char *ctime(const time_t *time);
day month year hours:minutes:seconds year\n\0;
struct tm *localtime(const time_t *time);
函数返回一个指向表示本地时间的tm结构的指针;
struct tm *localtime(const time_t *time);
tm结构指针
clock_t clock(void);
四种与时间相关的类型 clock_t time_t size_t tm 类型clock_t size_t time_t 能够把系统时间日期表示为某种整数
clock_t clock
clock_t clock(void)
函数返回程序执行起(程序的开头),处理器时钟所用的时间
tm struct point;
clock_t clock(void)
返回一个表示当地时间的字符串指针
返回一个指向字符串的指针 字符串包含了time所指向结构中存储的信息,返回形式
char *asctime(const struct tm *time);
char *asctime(const struct )
struct tm *time
char *asctime(const struct tm* time);
函数返回一个指向字符串的指针 字符串包含了time所指向结构中存储的信息
day month date hours minutes seconds year
struct tm *gmtime(const tm * time);
struct tm *gmtime(const time_t *time);
函数返回一个指向time的指针 time为tm结构
universal universal time coordinated
universal time coordinated
greenwich mean time;
time_t mktime(struct tm *time);
time_t mktime(struct tm *time);
函数返回日历
size_t strftime()
函数用于格式化日期和时间为指定的格式;
double difftime(time_t time2,time_t time1);
函数返回time1和time2之间相差的秒数
double difftime(time_t time2,time_t time1);
使用结构化tm 格式化时间
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
}
tm
int tm_sec; 0 59 61
int tm_min; 范围从0 59second minutes
24 0 23
mday 一个月中的第几天
范围从1 ~ 31;
int 一个月的第几天
月 0 ~ 11;
int tm_year;//自1900年起的年份
int tm_wday 一周中的第几天,范围0 ~ 6;
int tm_year 一年中的第几天
int tm_dst;
C++基本的输入输出
标准库提供了一组丰富的输入输出
stdio 编程中最基本和最常见的io
i/o发生在流中,流是字节序列
stream bytes sequence;
字节序列 io发生在流中 流是字节序列
如果
如果字节流是从设备流向内存 键盘 磁盘 网络连接
字节流从设备 键盘 磁盘驱动器 网络连接等 流向内存;
输出操作
s输入输出 是 内存与设备之间的字节序列流之间的流向
字节流从内存流向设备(显示屏,打印机,磁盘驱动器,网络连接);
i/o裤头文件
<iostream> cin cout cerr clog对象 分别对应于标准输入流 标准输出流 非缓冲标准错误流 缓冲标准错误流
cin cout cerr clog cin >> cout <<
非缓冲标准错误流 cerr
clog
缓冲标准错误流
iostream
cin cout cerr clog;
对应
cerr 非缓冲标准错误流
Clog 缓冲标准错误流;
iostream
iomanip
文件通过所谓的参数化的流操作器(setw和setprecision)申明对执行标准化io有用的服务
文件通过所谓的参数化的流操纵器
iomanip文件通过所谓的参数化的流操纵器 (setw setprecision) 来申明对标准化io有用的服务
iomanip
fstream 文件为用户控制的文件处理申明服务 我们将在文件和流的相关章节讨论细节;
文件为用户控制的文件处理申明服务
文件和流的相关章节讨论细节;
fstream
通过所谓的参数化的流操纵器setw setprecision;
字节流从设备 键盘磁盘驱动器 网络连接 流向内存
<<运算符被重载来输出内置类型
整型 浮点 double 字符串 指针
流提取运算符
流插入
标准输入预定义的对象cin是istream类的一个实例 cin对象附属到标准输入设备通常是键盘 cin是
与流提取运算符>>集合使用
标准输出流cout 预定义的对象
标准输出流cout
预定义的对象cout是ostream类的一个实例 cout对象连接到标准输出设备
cout 对象连接到标准输出设备,对象连接到标准输出设备 显示屏
输出cout cout对象连接到标准输出设备-显示屏
cout与流插入运算符<<结合使用
<< 流插入运算符 cout对象连接标准输出设备 显示屏
对象附属到标准输入设备 键盘cin是流提取运算符 >> 集合使用
cout对象 连接到标准输出设备-显示屏
cin对象 负数到标准输入设备-键盘 cin是流提取运算符 >> 结合
cerr对象附属到标准错误设备-标准错误设备-显示屏 cerr对象是非缓冲的 每个流插入到cerr都会立即输出;
cerr与流插入运算符<<结合使用
cout << 流插入运算符
cout >> 流提取运算符;
cin对象附属到标准输入设备 通常键盘 cin >> 与流提取运算符 >> 结合使用;
预定义的对象 ostream 类的实例; clog对象附属到标准错误设备 clog对象是缓冲的
意味着每个流插入到clog都会先存储在缓冲
每个流插入到Clog会先 存储在缓冲 直到缓冲填满或者缓冲区刷新区才会输出;
cerr流显示错误消息,其它的 日志消息使用clog流来输出;
dataStruct数组允许定义可存储相同类型数据项的变量
可存储相同类型数据项的变量
数据结构是用户自定义的可用的数据类型 允许存储不同类型的数据项
结构用于表示一条记录,假设跟踪图书馆中书本的动态,可能需要跟踪每本书的下列属性
Title
Author
Subject
Book ID
struct语句定义了一个包含多个成员的新的数据类型
struct type_name
{
member_type1 member_name1;
member_type2 member_name2;
member_type3 member_name3;
} object_names;
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} book;
成员访问运算符是结构变量名称和我们要访问的结构成员之间的一个句号
typedef long int *pint32;
pint32 x,y,z;
typedef struct
{
char title[50];
char author[50];
char subject[100];
int book_id;
} Books; Books 是自定义的数据的别名 ,即是数据类型别名 是数据类型 不是数据类型下的变量;
函数返回引用时,则返回一个指向返回值的隐
所有指针的值的实际数据类型,
指针值的实际数据类型 都是一样,都是一个代表内存地址的长的十六进制数
不同数据类型指针之间唯一的不同是 指针指向的变量或常量的数据类型
C++中使用指针时频繁进行的操作,定义一个指针变量,把变量地址赋值给指针,访问指针变量中可用地址的值;
返回位于操作数所指定地址的变量的值
定义一个指针变量,把变量地址赋值给指针,访问指针变量中存储可用地址的值;
通过使用一元运算符*来返回位于操作数所指定地址的变量的值;
指针包含变量地址,指向指针的指针,第一个包含了第二个指针的地址 ,第二个指针指向包含实际值的位置;
指向int类型的指针的指针;
int **var;