c与c++的一些用法记录

10 篇文章 2 订阅

时间

C语言获取系统时间

头文件

#include <time.h>
int main()
{
    time_t t;
    struct tm *lt;      // 获取时间戳。
    time(&t);           // 转为时间结构。
    lt = localtime(&t); // 输出结果

    printf("%d/%d/%d %d:%d:%d\n", lt->tm_year + 1900, lt->tm_mon + 1, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);
    return 0;
}

运行结果:

2022/12/6 22:16:19

将上述获取到的日期转化成string类型

int main()
{
    time_t t;
    struct tm *lt;
    time(&t);
    lt = localtime(&t);

    char s[10];
    sprintf(s, "%4d%02d%02d", lt->tm_year + 1900, lt->tm_mon + 1, lt->tm_mday);
    printf("%s", s);

    return 0;
}

运行结果

20221206

获取形如(07:45)的时间与现在的时间进行比较

int main()
{
    char buf[20];
    strcpy(buf, "17:30");

    time_t t;
    struct tm *lt;
    time(&t);

    lt = localtime(&t);

    int minutes_now = lt->tm_min + 60 * lt->tm_hour;
    int minutes_time = (buf[0] - '0') * 600 + (buf[1] - '0') * 60 + (buf[3] - '0') * 10 + buf[4] - '0'; // 数字字符转数字的写法
    //以字符数组的形式获取到每个位的数
    
    printf("minutes_time:%d\n", minutes_time); // 判断以分为单位的历时
    printf("minutes_now:%d\n", minutes_now);

    //若now的分比time分大,则现在超过指定time的时间了

    return 0;
}

运行结果:

minutes_time:1050
minutes_now:1401

文件

将二维整型数组以二进制输出到文件(cpp)

头文件:

#include <fstream>
    ofstream out;
    out.open("test.dat", ios::binary | ios::out);

    if (!out.is_open()) // 文件编程成功判断
    {
        cout << "文件打开错误" << endl;
        out.close();
        return 0;
    }

    vector<vector<int>> c(26, vector<int>(126, 0)); // 数组定义,整型
    for (int i = 0; i < c.size(); i++)
        for (int j = 0; j < c[0].size(); j++)
            out.write((char *)&c[i][j], sizeof(int)); // 二进制,整型输出

    out.close();

从文件读入二进制数据到数组(cpp)

读入:

    ifstream infile;
    infile.open("test.dat", ios::binary | ios::in); 

    if (!infile.is_open()) // 文件编程成功判断
    {
        cout << "文件打开错误" << endl;
        infile.close();
        return 0;
    }

    // infile.seekg(16, ios::beg);            //可以选择跳过部分字节读取

    vector<vector<int>> c(26, vector<int>(126, 0)); // 数组定义,整型
    
    for (int i = 0; i < c.size(); i++)
        for (int j = 0; j < c[0].size(); j++)
            infile.read((char *)&c[i][j], sizeof(int)); // 将初始数据读入到数组c

    infile.close(); // 文件指针关闭
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值