鱼C论坛

 找回密码
 立即注册
查看: 1269|回复: 2

[已解决]清屏

[复制链接]
发表于 2023-11-8 08:54:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问有什么函数或者程序能在打印一些字符后将字符清除,而程序运行并不受影响(输入的数据之类的还在)
是一个for循环,输入数字改变字符型数组,然后打印字符型数组,在下一次输入的时候,将上一次打印的清除。
我已经尝试了printf("\n\n\n\n\n\n\n\n\n\n\n");但是不行。
最佳答案
2023-11-8 08:55:37
你可以使用ANSI转义序列来实现清屏的效果。在C语言中,你可以使用printf函数来输出转义序列。

要清除屏幕上的字符,你可以使用以下的转义序列:

printf("\033[2J\033[H");

这个转义序列的含义是:
\033[2J:清除屏幕
\033[H:将光标移动到屏幕的左上角

所以,当你想要清除屏幕上的字符时,你可以在每次循环开始的时候使用这个转义序列。

以下是你的代码的修改示例:

#include <stdio.h>

int main() {
    int i;
    char arr[10];

    for(i = 0; i < 10; i++) {
        // 输入数字改变字符型数组
        // 这里只是示例,你可以根据实际需求进行修改
        arr[ i] = 'A' + i;

        // 清屏
        printf("\033[2J\033[H");

        // 打印字符型数组
        printf("%c\n", arr[ i]);

        // 等待用户输入
        getchar();
    }

    return 0;
}

这样,每次循环开始时,屏幕上的字符都会被清除,然后打印新的字符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-8 08:55:37 | 显示全部楼层    本楼为最佳答案   
你可以使用ANSI转义序列来实现清屏的效果。在C语言中,你可以使用printf函数来输出转义序列。

要清除屏幕上的字符,你可以使用以下的转义序列:

printf("\033[2J\033[H");

这个转义序列的含义是:
\033[2J:清除屏幕
\033[H:将光标移动到屏幕的左上角

所以,当你想要清除屏幕上的字符时,你可以在每次循环开始的时候使用这个转义序列。

以下是你的代码的修改示例:

#include <stdio.h>

int main() {
    int i;
    char arr[10];

    for(i = 0; i < 10; i++) {
        // 输入数字改变字符型数组
        // 这里只是示例,你可以根据实际需求进行修改
        arr[ i] = 'A' + i;

        // 清屏
        printf("\033[2J\033[H");

        // 打印字符型数组
        printf("%c\n", arr[ i]);

        // 等待用户输入
        getchar();
    }

    return 0;
}

这样,每次循环开始时,屏幕上的字符都会被清除,然后打印新的字符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-8 08:56:22 | 显示全部楼层
清屏 C/C++交流

在C/C++中,可以使用控制台操作来实现清屏的效果。下面我将介绍两种方法来实现清屏和保留数据的目的。

方法一:使用系统命令

在 C/C++ 程序中,可以使用系统命令来实现清屏的效果。在 Windows 系统下,可以使用 system("cls") 命令来清屏;在类 Unix 系统(如 Linux)下,可以使用 system("clear") 命令来清屏。

示例代码如下:
#include <stdio.h>#include <stdlib.h>int main() {    printf("这是一些输出\n");    // 清屏    system("cls");  // Windows系统    // 或者使用 system("clear");  // 类Unix系统    // 继续其他操作    return 0;}
需要注意的是,使用 system 函数需要包含头文件 #include <stdlib.h>

方法二:利用 ANSI 控制码

另一种方法是使用 ANSI 控制码来实现清屏的效果。在 ANSI 控制码中,"\033[2J\033[1;1H" 可以实现清屏。

示例代码如下:
#include <stdio.h>int main() {    printf("这是一些输出\n");    // 清屏    printf("\033[2J\033[1;1H");    // 继续其他操作    return 0;}
这里的 "\033[2J\033[1;1H" 代表清屏的 ANSI 控制码,\033[2J 表示清除整个屏幕,\033[1;1H 将光标移动到左上角位置。

以上两种方法都可以实现清屏的效果,并且不影响程序的运行和输入数据。希望这些方法能够满足你的需求,如果还有其他问题,请随时向我提问。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 02:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表