C++输入输出与日期时间

文章介绍了C++中处理日期和时间的两种方法,包括C++11之前的ctime库和C++11引入的chrono库。通过示例代码展示了如何获取并打印当前时间、计算程序执行时间以及使用标准输入输出流cin,cout,cerr和clog进行数据交互。
摘要由CSDN通过智能技术生成

目录

一 日期与时间操作

二 输出输出基本函数


一 日期与时间操作

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值