如何在C++中检查操作系统是否为Windows或Debian?

3

我希望在C++中,每次用户输入时都能清除控制台屏幕。

我考虑使用system命令。对于Windows系统,使用"cls"命令;对于Linux系统,使用"clear"命令。是否有一种方法可以在C++中检查使用哪个系统来使用相应的命令?

谢谢。


如果您不想使用ifdefs,您可以同时执行它们。 - sisis
@sisis:但是那会将错误信息输出到命令提示符窗口。 - Billy ONeal
3个回答

5
有一个巧妙的解决方案:

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

对于Unix来说,它可以正常工作。对于Windows来说,它会提示一个错误,如下:

'clear' 不是一个内部或外部命令,可执行的程序或批处理文件。

不过现在可以通过 "cls" 命令清除它。因此,在命令提示窗口中,它将不会留下任何痕迹。:D


4

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

但是,您可以指示Windows编译器定义WINDOWS宏和Linux编译器定义LINUX宏;一些编译器默认情况下会这样做(例如Visual Studio定义WIN32)。


1
你可以在C++中使用C预处理器-条件语法。
#ifdef linux
    //clear
#else
    //cls
#endif

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接