提问人:Pavlo 提问时间:11/9/2023 最后编辑:genpfaultPavlo 更新时间:11/9/2023 访问量:118
Cygwin系统(“暂停”);和 system(“cls”);错误
Cygwin system("pause"); and system("cls"); error
问:
这是我的 C++ 代码:
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
cout << "Hello, world!" << endl;
system("pause");
system("cls");
return 0;
}
我在cygwin中编译它,并出现此错误: sh: line 1: pause: command not found sh:第 1 行:cls:找不到命令。 我已经安装了 ncurses,但它仍然不起作用,有人可以帮忙吗?
答:
1赞
gmonoae4
11/9/2023
#1
如果你真的想运行这个程序,你可以使用 or .但是,正如其他人已经指出的那样,它可能不完整或构成安全风险。system("cmd.exe /c pause")
system("cmd.exe /c cls")
评论
0赞
Pavlo
11/10/2023
非常感谢,顺便说一句,你怎么知道这个命令?我在互联网上搜索,找不到任何有用的东西
0赞
gmonoae4
11/11/2023
@Pavlo 在 Cygwin shell 环境中,使用该函数时,可以执行 Windows 可执行文件。但是,并且是 cmd.exe 的内置命令,而不是独立的可执行文件,因此无法在 Cygwin shell 环境中执行。因此,若要运行这些命令,需要与命令一起传递或传递给函数。这种方法基于经验法则。system()
pause
cls
cmd.exe
/c pause
/c cls
system()
0赞
gmonoae4
11/11/2023
如果您想直接使用,或者没有使用 Cygwin 的具体原因,建议考虑 MSYS2 或 Visual Studio,因为其他人已经评论过了。如果您不关心维护与 Linux 的跨平台兼容性,这是一个更好的选择。pause
cls
评论
system()
是一场安全噩梦,与生成的程序交互也是一种痛苦 - 永远不应该使用它。system()
ncurses
system()