如何在 c++ 中检查操作系统是 Windows 还是 Debian?

Posted

技术标签:

【中文标题】如何在 c++ 中检查操作系统是 Windows 还是 Debian?【英文标题】:how to check if the OS is Windows or Debian in c++? 【发布时间】:2010-04-01 02:20:15 【问题描述】:

每次用户在 C++ 中进行输入时,我都想清除控制台屏幕。

我正在考虑使用系统命令。对于 Windows,它是“cls”。对于 Linux,它是“清晰的”。有没有办法检查哪个系统在 c++ 中使用适当的命令?

谢谢。

【问题讨论】:

如果你不想使用 ifdefs,你可以同时使用它们。 @sisis:但这会将错误转储到命令提示符。 【参考方案1】:

有个绝招:

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

对于 Unix,它可以正常工作。对于 Windows,它会提示类似

的错误

'clear' 未被识别为内部或外部命令, 可运行的程序或批处理文件。

虽然它现在会被“cls”清除。所以在命令提示符窗口中,它不会留下任何痕迹。 :D

【讨论】:

【参考方案2】:

不,没有 C++ 标准的方法可以做到这一点。

您可以指示您的 Windows 编译器定义 WINDOWS 宏,并指示您的 linux 编译器定义 LINUX 宏;一些编译器默认执行此操作(例如 Visual Studio 定义 WIN32)。

【讨论】:

【参考方案3】:

您也可以在 C++ 中使用 C 预处理器 - 条件语法。

#ifdef linux
    //clear
#else
    //cls
#endif

【讨论】:

以上是关于如何在 c++ 中检查操作系统是 Windows 还是 Debian?的主要内容,如果未能解决你的问题,请参考以下文章

在 windows 中检查 c++ 版本

如何检查是不是所有字段都已填写? [C++,VS 2015,Windows 窗体]

如何使用 C++ 检查进程是不是正在运行

如何检查 Windows 版本是不是为正版?

以编程方式检查 Windows 是不是已使用 C++ 激活

C: 如何检查电脑是不是被锁定/睡眠?