前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++中如何获取终端输出的行数,C++清除终端输出特定的一行内容

C++中如何获取终端输出的行数,C++清除终端输出特定的一行内容

作者头像
全栈程序员站长
发布2022-07-11 10:00:48
3.9K0
发布2022-07-11 10:00:48
举报

大家好,又见面了,我是全栈君。

单纯使用C++ 进行编程的时候,很多输出的调试信息都是直接在终端输出的,那么有的时候就会对终端输出的信息有一定的要求,那么如何进行定位终端输出的信息到底输出到了哪一行呢?如何清除特定的一行终端内容呢?

对于上面的两个问题,相信也会有很多小伙伴有同样的烦恼,那么就让我们一起来解决这个麻烦吧。

代码语言:javascript
复制
#include <iostream>
#include <Windows.h>
using namespace std;


// 回到坐标位置,坐标需要给定
void setpos(int x, int y)
{ 
   
	COORD coord;         
	coord.X = x;
	coord.Y = y;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);  //回到给定的坐标位置进行重新输出
}


// 获取当前标准输出流位置
void getpos(int* x, int* y)
{ 
   
	CONSOLE_SCREEN_BUFFER_INFO b;           // 包含控制台屏幕缓冲区的信息
	GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &b);    // 获取标准输出句柄
	*x = b.dwCursorPosition.X;
	*y = b.dwCursorPosition.Y;
}

int main()
{ 
   
	int x, y;
	cout << "终端输出第一行内容;" << endl;
	cout << "终端输出第二行内容;" << endl;
	cout << "终端输出第三行内容;" << endl;
	getpos(&x, &y); //记录当前终端输出的位置
	setpos(0, 2);   // 回到坐标(0,2)位置进行标准输入输出 (第三行第一个字节位置)
	cout << " ";       // 在原本存在内容的情况下,清空原本行的内容
	setpos(0, 2);  // 回到坐标(0,2)位置进行标准输入输出
	cin >> x;
	setpos(x, y); //回到记录的位置
	return 0;
}

通过上面的代码demo就能够实现终端清空某一特定行的内容的操作了,快来尝试一下。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115098.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年2月7,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档