目录
一 日期与时间操作
C++中有几种操作日期时间的模块,C++11之前用ctime, c++11及之后用chrono ,接下来将对两种方式进行示例代码演示。
ctime示例代码:
#include <iostream>
#include <ctime> //导入ctime头文件
#include <thread>
using namespace std;
int main() {
//获取当前系统的日期与时间
time_t now= time(0);
//把系统时间转换为字符串格式
char *nowChar= ctime(&now);
//输出时间
std::cout<<"当前时间为:"<<nowChar<<std::endl;
//将当前日期与时间转换为结构体,便于取出其中的年月日时分秒
tm *tmStruct= localtime(&now);
// 输出 tm 结构的各个组成部分
cout << "年: "<< 1900 + tmStruct->tm_year << endl;
cout << "月: "<< 1 + tmStruct->tm_mon<< endl;
cout << "日: "<< tmStruct->tm_mday << endl;
cout << "时 "<< tmStruct->tm_hour <<endl;
cout <<"分:"<< tmStruct->tm_min << endl;
cout <<"秒:"<<tmStruct->tm_sec << endl;
cout<<"星期:"<<tmStruct->tm_wday<<endl;
cout<<"是一年的第"<<tmStruct->tm_yday<<"天"<<endl;
//计算程序的执行耗时
time_t startTime,endTime;
time(&startTime);//记录开始时间
cout<<"开始时间:"<<startTime<<endl;
//执行一段程序
int sum=0;
for (int i = 0; i < 100000000; ++i) {
sum+=i;
}
cout<<"1~100000的累加和为:"<<sum<<endl;
time(&endTime) ;//记录结束时间
cout<<"结束时间:"<<endTime<<endl;
//计算时间差
double sumTime=endTime-startTime;
std::cout << "总耗时:" <<sumTime<<"秒"<< std::endl;
return 0;
}
chrono 示例代码:
#include <iostream>
#include <ctime> //导入ctime头文件
#include <chrono> //导入c++11处理时间的头文件
#include <iomanip>
using namespace std;
int main() {
cout<<"===============================c++11=========================="<<endl;
auto start=chrono::system_clock::now();//记录开始时间
// cout << "开始时间:" << start << endl;
//执行一段程序
int Sum = 0;
for (int i = 0; i < 100000000; ++i) {
Sum += i;
}
cout << "1~100000的累加和为:" << Sum << endl;
auto end=chrono::system_clock::now();;//记录结束时间
//cout << "结束时间:" << endTime << endl;
//计算时间差
chrono::duration<double> diff= end - start;
std::cout << "总耗时:" << diff.count() << "秒" << std::endl;
//输出系统时间
auto t = chrono::system_clock::to_time_t(std::chrono::system_clock::now());
cout<< std::put_time(std::localtime(&t), "%Y-%m-%d %X")<<endl;
cout<< std::put_time(std::localtime(&t), "%Y-%m-%d %H.%M.%S")<<endl;
return 0;
}
二 输出输出基本函数
I/O 库头文件
头文件 | 函数和描述 |
<iostream> | 该文件定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、 非缓冲标准错误流和缓冲标准错误流。 |
<iomanip> | 该文件通过所谓的参数化的流操纵器(比如 setw 和 setprecision), 来声明对执行标准化 I/O 有用的服务。 |
<fstream> | 该文件为用户控制的文件处理声明服务。我们将在文件和流的相关章节讨论它的细节。 |
代码示范:
//几种标准流使用示范
cout << "标准输出流" << endl; //标准输出流
char name[20];
int age;
cout << "请输入你的名字和年龄" << endl;
//标准输入流,接收键盘或其他输入
cin >> name >> age; //把输入的数据保存值字符串数组中和int变量中,输入完成一个时敲击回车键完成操作
cout << "你的姓名是:" << name << endl;
cout << "你的年龄是:" << age << endl;
//标准错误流: 输入的数据无缓冲,会立即输出到显示端,而且字体会程红色
cerr << "这是错误输出流" << endl;
//标准日志流: 数据会先存储到缓冲区,缓冲区满之后才会输出
char s[] = "这是标准日志流";
clog << s << endl;