C++ 如何在c+中以文本模式清除特定文本+&引用;不是整个屏幕;? system(“cls”)-#包括标准头文件 CLRSC()-#包含非标准头文件

C++ 如何在c+中以文本模式清除特定文本+&引用;不是整个屏幕;? system(“cls”)-#包括标准头文件 CLRSC()-#包含非标准头文件,c++,C++,这两个功能可以清除整个屏幕。 我想清除,或者我们可以对特定字符或字符串使用反斜杠“\b”的概念,而不影响其他内容。在插入任何数字时。 例如:hellow 当我同时输入这个“hellow”时,它会返回到“o”。以下两个C程序都在Debian上的bash中工作: system("cls") - #include <stdlib.h> STANDARD HEADER FILE clrscr() - #include <conio.h> NON-STANDARD

这两个功能可以清除整个屏幕。 我想清除,或者我们可以对特定字符或字符串使用反斜杠“\b”的概念,而不影响其他内容。在插入任何数字时。 例如:hellow
当我同时输入这个“hellow”时,它会返回到“o”。

以下两个C程序都在Debian上的bash中工作:

system("cls") - #include <stdlib.h>  STANDARD HEADER FILE 
clrscr()      - #include <conio.h>   NON-STANDARD HEADER FILE

这可能也适用于Mac OSX(因为它也使用),但我不知道Windows或。

您可以使用
Windows.h
库中的
SetConsoleCursorPos()
函数,通过调用文本打印函数用空白字符/空格覆盖一个或多个字符

thomas@yozu-thomas:~/Programming$ gcc -o main main.c
thomas@yozu-thomas:~/Programming$ ./main
xxxHelloxxx
thomas@yozu-thomas:~/Programming$ 
#包括
#包括
void clearScreen(int from_x,int to_x,int from_y,int to_y)//此函数用于清除文本块
{
句柄conHandle=GetStdHandle(标准输出句柄);

对于(int i=0;即使是<代码>系统>代码>是由C标准提供的,它的行为是实现定义的。C或C++对图形文本操作都没有什么可说的。使用类似NcRESs的东西。Windows提供了一个用于处理控制台的API:不过,我不认为您擦除文本。我想您只需编写SPA。我认为任何答案都必须是特定于操作系统/输出设备的。例如,
system(“cls”)
在bash中不起作用(
sh:1:cls:notfound
)。不清楚您想要实现什么。给我们一个例子(输入、输出).我知道的两种模式是文本模式和图形模式。在图形模式下,我可以通过设置gotoxy(x,y)来实现,但在文本模式下我什么都没有?
#include <stdlib.h>
int main() { return system("echo 'xxxHellow\bxxx'"); }
thomas@yozu-thomas:~/Programming$ gcc -o main main.c
thomas@yozu-thomas:~/Programming$ ./main
xxxHelloxxx
thomas@yozu-thomas:~/Programming$ 
#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;
}