如何检查OS是Windows还是C++的Debian?
问题描述:
我想每次用户在C++中输入时清除控制台屏幕。如何检查OS是Windows还是C++的Debian?
我正在考虑使用系统命令。对于Windows,它是“cls”。对于Linux,它是“明确的”。有没有办法检查哪个系统在C++中使用适当的命令?
谢谢。
答
您也可以在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
,如果你不希望使用的ifdef,你可以做这两个动作。 – sisis 2010-04-01 02:31:11
@sisis:但是这会将错误转储到命令提示符。 – 2010-04-01 02:32:03