在 Solaris、Linux、Windows 和 Mac 上用 C 语言清除屏幕

Posted

技术标签:

【中文标题】在 Solaris、Linux、Windows 和 Mac 上用 C 语言清除屏幕【英文标题】:Clearing the Screen in C on Solaris, Linux, Windows and Mac 【发布时间】:2011-03-08 01:12:47 【问题描述】:

我正在用 C 编写一个小应用程序,并想清除终端/dos 窗口的文本。

到目前为止我有:

  if (system("cls"))
    system("clear");

这似乎在除了 Mac 之外的所有设备上都可以正常工作,这给了我错误:

sh: cls: 找不到命令 TERM 未设置环境变量。

奇怪的是,来自终端的 clear 有效,但 system(clear); 无效,我不知道为什么。

有谁知道我可以如何阻止这种情况,或者修改我的代码以清除 Mac 终端上的屏幕,这将在其他 ANSI C 兼容编译器上运行,而显然无需向控制台写入一堆 '/n'?

【问题讨论】:

How do I clear the console in BOTH Windows and Linux using C++ 的可能重复项 如果某个用户想要通过管道传输到您的小型应用程序/从您的小型应用程序传输信息怎么办? cat somefile | yourApp | grep foobar ???不清屏可以吗? 好吧,因为我正在学习 C,所以我更关心学习如何清除它,而不是用户是否想通过管道传入/传出我的应用程序! ;) 【参考方案1】:

原来这是在 XCode 中编译和运行的问题。在 XCode 外部编译和运行时,代码按预期工作。呸!

【讨论】:

以上是关于在 Solaris、Linux、Windows 和 Mac 上用 C 语言清除屏幕的主要内容,如果未能解决你的问题,请参考以下文章

在 Linux 上构建 Solaris 软件包?

Solaris 上的 GCC - 在“0x00000002”之前解析错误

Windows 下都有哪些内存泄露监测工具

Linux 和 Solaris 之间的 RPC 调用

使 bash 脚本在 Linux 和 Solaris 上运行

Linux 下使用Google Test