时间
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(); // 文件指针关闭