我有一个几千行的txt文件,里面都是ascall字符,我想每次读取30行在控制台显示然后清屏,延迟0.1s后再输出接下来的30行,也就是第一次控制台输出1-30行,清屏,第二次输出31-60行,这样一直下去,直到文件末尾
1. 我希望在每次在控制台显示的时候一次性显示30行的字符,必须一次性显示30行,肉眼不能察觉到是一行一行显示出来的。
楼主您好,对于每隔一段时间显示问题,C++有对应的延时函数,但精确度不同。推荐用Sleep()参数是毫秒,包含在头文件里。对于并行显示的话,可以考虑先将读入的内容放在一个容器或者数组缓存中,当延时结束后,在显示在屏幕上,记得有对应函数,可以查查;有什么问题可以随时交流。
#include<iostream>
#include<fstream>
#include<string>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
void hoop(string x)
{
const char *txtname=x.c_str();
ifstream infile(txtname,ios::in);
if(!infile)
{
cerr<<"open1error!"<<endl;
exit(1);
}
char ch;
for(int i=0;infile.get(ch);i++)
{
if(i%2355==0)
system("CLS");
else
cout.put(ch);
}
infile.close();
}
int main()
{
string c="5.txt";
hoop(c);
return 0;
}