C语言如何用代码清空输出框?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 C语言 正文

Windows 系统(使用 system("cls")

在Windows环境下,可以使用 system("cls") 命令来清屏。
注意:需要包含 <stdlib.h> 头文件。

C语言输出框咋清屏C语言代码
(图片来源网络,侵删)
#include <stdio.h>
#include <stdlib.h>  // 用于 system()
int main() {
    printf("这是第一行内容,\n");
    printf("按任意键清屏...\n");
    getchar();  // 等待用户按键
    system("cls");  // 清屏命令
    printf("屏幕已清屏!\n");
    return 0;
}

Linux / macOS 系统(使用 system("clear")

在Linux或macOS环境下,可以使用 system("clear") 命令来清屏。

#include <stdio.h>
#include <stdlib.h>  // 用于 system()
int main() {
    printf("这是第一行内容,\n");
    printf("按任意键清屏...\n");
    getchar();  // 等待用户按键
    system("clear");  // 清屏命令
    printf("屏幕已清屏!\n");
    return 0;
}

跨平台方法(兼容Windows和Linux/macOS)

如果希望代码能在不同操作系统上运行,可以使用条件编译:

#include <stdio.h>
#include <stdlib.h>
void clearScreen() {
#ifdef _WIN32
    system("cls");  // Windows
#else
    system("clear");  // Linux/macOS
#endif
}
int main() {
    printf("这是第一行内容,\n");
    printf("按任意键清屏...\n");
    getchar();
    clearScreen();  // 调用清屏函数
    printf("屏幕已清屏!\n");
    return 0;
}

不依赖 system() 的方法(仅适用于控制台)

如果不想调用外部命令(system() 可能存在安全风险),可以使用特定平台的API:

Windows(使用 GetConsoleScreenBufferInfoFillConsoleOutputCharacter

#include <stdio.h>
#include <windows.h>  // Windows API
void clearScreen() {
    HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    DWORD count;
    DWORD cellCount;
    COORD homeCoords = { 0, 0 };
    if (hStdOut == INVALID_HANDLE_VALUE) return;
    // 获取控制台屏幕缓冲区信息
    if (!GetConsoleScreenBufferInfo(hStdOut, &csbi)) return;
    cellCount = csbi.dwSize.X * csbi.dwSize.Y;
    // 填充空格字符
    if (!FillConsoleOutputCharacter(hStdOut, ' ', cellCount, homeCoords, &count)) return;
    // 填充默认属性
    if (!FillConsoleOutputAttribute(hStdOut, csbi.wAttributes, cellCount, homeCoords, &count)) return;
    // 移动光标到左上角
    SetConsoleCursorPosition(hStdOut, homeCoords);
}
int main() {
    printf("这是第一行内容,\n");
    printf("按任意键清屏...\n");
    getchar();
    clearScreen();  // 调用清屏函数
    printf("屏幕已清屏!\n");
    return 0;
}

Linux/macOS(使用 ANSI 转义序列 \033[2J\033[H

#include <stdio.h>
void clearScreen() {
    printf("\033[2J\033[H");  // ANSI 转义序列清屏并移动光标到左上角
}
int main() {
    printf("这是第一行内容,\n");
    printf("按任意键清屏...\n");
    getchar();
    clearScreen();  // 调用清屏函数
    printf("屏幕已清屏!\n");
    return 0;
}

方法 适用系统 优点 缺点
system("cls") / system("clear") Windows / Linux/macOS 简单 依赖外部命令,可能不安全
跨平台条件编译 Windows + Linux/macOS 代码可移植 需要判断系统
Windows API Windows 高效,不依赖外部命令 仅限Windows
ANSI 转义序列 Linux/macOS 高效,不依赖外部命令 仅限Linux/macOS

推荐

C语言输出框咋清屏C语言代码
(图片来源网络,侵删)
  • 如果只是简单程序,用 system("cls")system("clear") 最方便。
  • 如果需要跨平台,用条件编译方法。
  • 如果追求高效或安全性,用特定平台API(Windows API 或 ANSI 转义序列)。
-- 展开阅读全文 --
头像
织梦CMS数据库配置文件在哪?
« 上一篇 01-29
织梦模板安装报错dir怎么办?
下一篇 » 01-29

相关文章

取消
微信二维码
支付宝二维码

目录[+]