【问题标题】:C++ How does if (system("CLS") {system("clear)} workC++ if (system(\"CLS\") {system(\"clear)} 是如何工作的
【发布时间】:2022-11-15 21:54:39
【问题描述】:

C++ 这是如何工作的

if (system("cls"))
{
    system("clear")
}

我试图找到一种跨平台的方法来清除 C++ 中的控制台 我记得一些使用这种语法的代码,所以我尝试了它并且它有效 但我想知道它是如何工作的,它是否返回错误或其他东西 如果没有找到该命令

对不起,如果这是一个愚蠢的问题

【问题讨论】:

  • C和C++是两种截然不同的语言。请不要用标签发送垃圾邮件,只标记实际相关的标签,这意味着只有你实际编程语言的语言标签。
  • 它调用system("cls"),如果返回非零值(即:指示错误),它调用system("clear")
  • 如果第一个失败,它会在 shell 中运行命令,它会运行另一个。第一个 system("cls") 适用于 MS Windows,而另一个适用于 Windows 以外的许多系统(linux、macOS、bsd ...)。话虽如此,您可能希望使用ncurses 库而不是生成 shell
  • system 可能很棘手。至少在 unix-likes 上,如果有人在他们的路径中有不同的 clsclear,这可以做任何事情。
  • 据我们所知,cls 可能是 *nix 计算机上某些完全不同的可执行文件的名称,因此不建议编写这样的代码。

标签: c++ cmd


【解决方案1】:

clsclear 是用于清除屏幕的终端/命令提示符命令。

system 是一个用于直接与 cmd/终端交互的 C++ 命令。如果命令成功完成,则返回 0。

在这种情况下,如果 cls 无法清除屏幕(换句话说,系统命令返回非 0 的内容),那么我们通过系统发出 clear 命令。 这些命令之一将在运行该应用程序的操作系统上运行。

【讨论】:

  • "这些命令之一将在运行该应用程序的操作系统上运行"或者没有。
  • Clear 适用于 Linux/MacOS。 Cls 适用于 Windows。编辑:当然,我说的是操作系统的实例,其中 clear/cls 命令没有被覆盖以执行其他操作。
  • @IlijaVuk:clear 来自/bin/bash,我认为,它可能不会出现在所有 Linux 环境中。
猜你喜欢
  • 2021-11-25
  • 1970-01-01
  • 2012-07-18
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-16
  • 1970-01-01
相关资源
最近更新 更多