C++中time()、timeGetTime()函数,以及创建Log日志写入日志教程

#include <iostream>
#include <opencv2/opencv.hpp>
#include <ctime>
#include <windows.h>               // DWORD 数据类型所用
#pragma comment(lib,"winmm.lib")   // 该依赖库为timeGetTime()函数所用
#include <fstream>                 // 为输出流写入文件所用

int main() {

	cv::VideoCapture capture("E://demo_codes//shared_codes//FrontOD//3D_Vision//chessboard.avi");
	int frameCount = capture.get(cv::CAP_PROP_FRAME_COUNT);   // 获取视频总帧数
	int fps = capture.get(cv::CAP_PROP_FPS);                  // 获取视频FPS
	DWORD star_time = timeGetTime();
	while (1) {
		cv::Mat frame;
		capture >> frame;
		if (frame.empty()) {
			std::cout << "Display Done!" << std::endl;
			break;
		}
		cv::imshow("读取视频", frame);
		cv::waitKey(1);
	}
	DWORD end_time = timeGetTime();
	int timeDiff = (end_time - star_time) / 1000;
	std::cout << "timeDiff:" << timeDiff <<"s" << std::endl;
	std::cout << "sum frame:" << frameCount << std::endl;
	std::cout << "fps:" << fps << std::endl;

	std::ofstream Log("E://demo_codes//shared_codes//FrontOD//3D_Vision//log.txt");
	time_t t = std::time(nullptr);  // 获取指针指向的 结构体为time_t 的时间戳
	struct tm* now = std::localtime(&t); // 获取当地时间
	char str_ftime[50];
	strftime(str_ftime, sizeof(str_ftime), "%Y-%m-%d %H-%M-%S", now);  // 按格式输出当地时间

	Log << "## log_Vedio ******" << str_ftime << std::endl; //向Log.txt文件写入内容
	Log << " " << std::endl;
	Log << "fps:" << fps << std::endl;
	Log << " " << std::endl;
	Log << "timeDiff:" << timeDiff << std::endl;
	Log.close();

	return 0;
}

PS:在运行时可能会出现的问题

1.报错提示
在这里插入图片描述
解决方法:
在项目处右键”属性“–>”C/C++“–>“命令行”–>在下方输入"/D_CRT_SECURE_NO_WARNINGS"
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值