You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在CLION中运行程序时如何清除控制台(macOS环境)

在macOS的CLion中实现终端清屏的方法

在macOS系统下使用CLion运行C程序时,尝试用system("clear")或system("cls")清除终端均无效——system("cls")会报错sh: cls: command not found,system("clear")在原生终端运行正常,但在CLion的内置控制台毫无效果,且已正确引入<stdlib.h>库。用户编写的猜数字游戏希望每次循环时清屏,代码如下:

void gameAlgorithm(int difficulty)
{
    int number = rand() % difficulty;
    int guess = -1;

    while(guess != number)
    {
        printf("\nYour guess?: ");
        scanf("%d", &guess);
        if(guess < number)
        {
            printf("Number is HIGHER than %d.", guess);
        }else if(guess > number)
        {
            printf("Number is LOWER than %d.", guess);
        }
        system("clear");
    }
    printf("\nYOU ARE CORRECT!!!");
}

可行的解决方法

方法1:直接使用ANSI转义序列清屏

CLion的内置控制台支持ANSI转义序列,无需调用系统命令,直接输出清屏序列即可。将代码中的system("clear")替换为:

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

这个序列的作用是:

  • \033[H:将光标移动到屏幕左上角(Home位置)
  • \033[J:清除从光标位置到屏幕末尾的所有内容

修改后的完整函数示例:

void gameAlgorithm(int difficulty)
{
    int number = rand() % difficulty;
    int guess = -1;

    while(guess != number)
    {
        printf("\nYour guess?: ");
        scanf("%d", &guess);
        if(guess < number)
        {
            printf("Number is HIGHER than %d.", guess);
        }else if(guess > number)
        {
            printf("Number is LOWER than %d.", guess);
        }
        // 使用ANSI转义序列清屏
        printf("\033[H\033[J");
    }
    printf("\nYOU ARE CORRECT!!!");
}

方法2:配置CLion使用外部终端运行

如果更习惯使用原生终端的行为,可以让CLion直接调用macOS的自带Terminal运行程序:

  1. 打开CLion的偏好设置(快捷键Cmd + ,)
  2. 导航到Build, Execution, Deployment > Console
  3. 勾选Use external terminal选项
  4. 点击Apply保存设置

之后运行程序时,会自动打开系统Terminal窗口,此时system("clear")就能正常生效。

内容的提问来源于stack exchange,提问作者KazlLaur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:10:22