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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号