c++读取文件并每隔一秒(数秒)打印输出数据

//2023-9-3 by 小小见大大污
//定时输出功能主要利用chrono实现定时器功能,每隔一秒钟获得系统时间并输出到控制台,chrono是在std下,属于C++11的标准。
//输出时间的格式还可以改进,改进为:year-month-day
#include  
#include
#include
#include 
#include 
#include 
#include 
#include
#pragma warning(disable:4996)
using namespace std;
using namespace chrono;

vector parseLine(string line)//构造vector容器存放文件数据
{
	vector v;
	int pos = 0;
	int pos2 = 0;
	int len = line.length();
	while (pos < len)
	{
		pos2 = line.find(" ", pos);
		if (pos2 == -1)
			pos2 = len;
		v.push_back(line.substr(pos, pos2 - pos));
		pos = pos2 + 1;
	}
	return v;
}


int main()
{
	ifstream input_file("文件路径");//读取本地文件
	string line;
	time_t start_t, end_t;
	auto start = system_clock::now();//运用c++11auto
	auto end = system_clock::now();
	start_t = system_clock::to_time_t(start);//to_time_t函数:time_point转换成time_t秒(即ctime标准类型)
	long long duration = std::chrono::duration_cast(end - start).count();
	//用getline()函数取出文件中的一行,存入字符串变量line中
	while (getline(input_file, line))
	{
		//调用parseLine函数
		vector line_content = parseLine(line);
		for (int i = 0; i < line_content.size(); ++i)
		{
			for (int i = 0;;) //用for语句进行判断
			{
				end = system_clock::now();
				duration = std::chrono::duration_cast(end - start).count();
				if (duration == 1000) //如果时间间隔为1000ms即1秒就退出for语句
				{
					break;
				}
			}
			end_t = system_clock::to_time_t(end);//to_time_t函数:time_point转换成time_t秒(即ctime标准类型)
			std::cout << ctime(&end_t)<< line_content[i];//每秒输出一行
			start = end;//将start更新成当前end时刻,便于下次循环
			duration = 0;//将duration置为0,便于下次循环
			cout << endl;
		}	
	cout << endl;
	}
	input_file.close();
	return 0;
}

运行示例:

c++读取文件并每隔一秒(数秒)打印输出数据_第1张图片

定时器功能参考:


c++chrono实现一个计时器,每隔一秒向屏幕输出当前时间_c++ chrono 计时_爱吃代码的航航的博客-CSDN博客

你可能感兴趣的:(c++,开发语言,算法)