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)


相关推荐

  • 第一个java程序HelloWorld「建议收藏」

    第一个java程序HelloWorld「建议收藏」接上集:java入门教程(一)转载请注明出处:https://blog.csdn.net/u014254481/article/details/81943950一、各类注释:所谓注释,跟我们学习古文时下面的注释作用如出一辙,代码中的注释也是帮我们理解代码的含义,在真正的开发中注释要求写的非常详细和清楚,而写注释的习惯要从一开始养成。(如图1)1.单行注释:只能跟一行注释内容//注释…

  • 1_项目搭建

    1_项目搭建数据库父工程1、建Module:supergo_parent2、改pom<?xmlversion=”1.0″encoding=”UTF-8″?><projectxmlns=”http://maven.apache.org/POM/4.0.0″xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”xsi:schemaLocation=”http://maven.apache.org/POM/4.

  • UIControl-IOS开发

    UIControl-IOS开发

  • RabbitMQ使用规范「建议收藏」

    RabbitMQ使用规范「建议收藏」RabbitMQ使用规范命名exchange:{模块名}.{功能名}queue:{word}.{word}routingkey:{word}.{word},例:merge.request,原因:.之间的会被认为是一个单词,便于通过*和#来匹配一个或多个单词序列化默认情况下RabbitMQ发送的消息是为字节码,我们采用统一的JSON格式的消息使用MessageConvert自动转换为JSON如果规定了消息的格式为JSON,并使用消息转换器,则会自动将消息转化为JSON格式而不需要每次

  • 【BZOJ】2165: 大楼

    【BZOJ】2165: 大楼

  • spring bean的生命周期面试如何回答_面试maven的生命周期

    spring bean的生命周期面试如何回答_面试maven的生命周期SpringBean生命周期

发表回复

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

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