【发布时间】:2010-04-01 02:20:15
【问题描述】:
每次用户在 C++ 中进行输入时,我都想清除控制台屏幕。
我正在考虑使用系统命令。对于 Windows,它是“cls”。对于 Linux,它是“清晰的”。有没有办法检查哪个系统在 c++ 中使用适当的命令?
谢谢。
【问题讨论】:
-
如果你不想使用 ifdefs,你可以同时使用它们。
-
@sisis:但这会将错误转储到命令提示符。
每次用户在 C++ 中进行输入时,我都想清除控制台屏幕。
我正在考虑使用系统命令。对于 Windows,它是“cls”。对于 Linux,它是“清晰的”。有没有办法检查哪个系统在 c++ 中使用适当的命令?
谢谢。
【问题讨论】:
有个绝招:
if (system("clear"))
system("cls");
对于 Unix,它可以正常工作。对于 Windows,它会提示类似
的错误'clear' 未被识别为内部或外部命令, 可运行的程序或批处理文件。
虽然它现在会被“cls”清除。所以在命令提示符窗口中,它不会留下任何痕迹。 :D
【讨论】:
不,没有 C++ 标准的方法可以做到这一点。
您可以指示您的 Windows 编译器定义 WINDOWS 宏,并指示您的 linux 编译器定义 LINUX 宏;一些编译器默认执行此操作(例如 Visual Studio 定义 WIN32)。
【讨论】:
您也可以在 C++ 中使用 C 预处理器 - 条件语法。
#ifdef linux
//clear
#else
//cls
#endif
【讨论】: