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

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

vector<string> parseLine(string line)//构造vector容器存放文件数据
{
	vector<string> 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<std::chrono::milliseconds>(end - start).count();
	//用getline()函数取出文件中的一行,存入字符串变量line中
	while (getline(input_file, line))
	{
		//调用parseLine函数
		vector<string> 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<std::chrono::milliseconds>(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++chrono实现一个计时器,每隔一秒向屏幕输出当前时间_c++ chrono 计时_爱吃代码的航航的博客-CSDN博客

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值