如何在 c++ "not whole screen" 的文本模式下清除特定文本?
How can i clear particular text in text mode in c++ "not whole screen"?
system("cls") - #include <stdlib.h> STANDARD HEADER FILE
clrscr() - #include <conio.h> NON-STANDARD HEADER FILE
这两个功能清除整个屏幕。我想清除,或者我们可以对特定字符或字符串使用 BACKSLASH '\b' 的概念,而不会影响其他内容。在插入任何数字时。例如:海洛当我同时输入这个"hellow"时,它会回到"O"。
以下两个 C 程序都可以在 Debian 上工作:
#include <stdio.h>
int main()
{
printf("xxxHellowbxxxn");
return 0;
}
或
#include <stdlib.h>
int main() { return system("echo 'xxxHellowbxxx'"); }
两者都会产生您期望的结果:
thomas@yozu-thomas:~/Programming$ gcc -o main main.c
thomas@yozu-thomas:~/Programming$ ./main
xxxHelloxxx
thomas@yozu-thomas:~/Programming$
这可能也适用于Mac OSX(因为它也使用bash(,但我不知道Windows cmd.exe
或PowerShell。
您可以使用
windows.h
库中的SetConsoleCursorPos()
函数,通过调用文本打印函数用空白字符/空格覆盖一个或多个字符。
#include <windows.h>
#include <stdio.h>
void clearScreen(int from_x, int to_x, int from_y, int to_y) // this function clears a block of text
{
HANDLE conHandle = GetStdHandle(STD_OUTPUT_HANDLE);
for(int i = 0; i<to_y-from_y; i++)
{
COORD pos;
pos.Y = from_y+i;
pos.X = from_x;
SetConsoleCursorPosition(conHandle, pos);
for(int j = 0; j<to_x-from_x; j++)
{
printf(" ");
}
}
return;
}
int main()
{
for(int i = 0; i<10; i++)
{
for(int j = 0; j<10; j++)
{
printf("a");
}
printf("n");
}
clearScreen(1, 3, 4, 6);
return 0;
}
相关文章:
- C++ 使用存储在动态数组中的文本文件中的数据查找模式
- 用户定义的文本运算符(在原始模式下)存在问题
- 模式匹配文本并提取C++中的数据
- C++将特定的数据模式从RFID阅读器写入文本文件
- 二进制模式 + 格式化文本操作或文本模式 + 二进制数据操作 - 有意义吗?
- Linux绘制文本模式(无GUI,桌面)
- 我想将CSTRING数据存储到二进制中(不是在文本模式下,而是统一),但无法存储它
- C 将写入VGA文本模式存储器在屏幕上不可见
- 如何在 c++ "not whole screen" 的文本模式下清除特定文本?
- 二进制与文本模式下的文件操作 -- 性能问题
- 在文本模式下使用 seekg()
- 从字符串中提取特定的文本模式
- 用于显示文本模式菜单的库
- 如何在c++中将流从文本模式更改为二进制模式
- 移动文本模式光标不工作
- 我将如何执行此文本模式匹配
- 如何在文本模式下安全地混合 std::ifstream 的 tellg、seekg 和 read(*,n) 方法
- 奇怪的文本模式文件输出行为
- 用户界面-GUI和文本模式C++设计,以消除冗余(可选参数?功能过载?)
- 以文本模式将消息写入给定文件