提问人:oel5w40 提问时间:11/1/2023 更新时间:11/1/2023 访问量:63
C++, Linux, 系统(“读取...”) 导致错误
C++, Linux, system("read ...") causes error
问:
我有一个问题并解决了它,但有一个问题应该解决。 我在工作中使用 Windows,在家使用 Linux。我想适应
system("pause");
从 Windows 到 Linux。
所以我试过了system("read -n1 -r -p \"press any key\"");
但是包括“read”在内的每个组合都会导致在执行程序时出现错误 h: 1: read: Illegal option -n 现在我使用
printf("press enter\”):
getchar();
但我想知道为什么system(“read ...”)会导致此错误。如果我输入 read -n1 -r p “按任意键”,它可以毫无问题地工作。
有什么秘密吗?为什么很难找到等效的代码system("pause");
在 Linux 中。 任何帮助都是值得赞赏的。
安德烈亚斯
我尝试了system(“read -ns1”);但错误并没有消失。我在 stackoverflow.com 中搜索并得到了解决方案,但我想知道为什么“读取”与“系统”相结合会导致我不明白的错误。
答:
0赞
Diego Torres Milano
11/1/2023
#1
因为是内置的 shell 而不是命令read
type read
read is a shell builtin
你能做的最好的事情就是避免和阅读C++,使用任何可用的选项,但是,如果你真的,真的想走那条路system
system("bash -c \"read -n1 -r -p 'press any key'\");
评论
system()
-n
bash
system()
sh
getchar
system
system