如何检查OS是Windows还是C++的Debian?

问题描述:

我想每次用户在C++中输入时清除控制台屏幕。如何检查OS是Windows还是C++的Debian?

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

谢谢。

+0

,如果你不希望使用的ifdef,你可以做这两个动作。 – sisis 2010-04-01 02:31:11

+0

@sisis:但是这会将错误转储到命令提示符。 – 2010-04-01 02:32:03

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

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

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

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

有一招解决方案:

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

对于Unix,它只是正常工作。对于Windows,它将提示错误,如

'clear'不被识别为内部或外部命令, 可操作的程序或批处理文件。

它现在将被“cls”清除。所以在命令提示符窗口中,它不会留下任何轨道。 :d

+0

整洁的把戏;).. – Inverse 2010-04-01 03:05:30