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

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

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

#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就能够实现终端清空某一特定行的内容的操作了,快来尝试一下。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员吴同学

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值