我有一个简单的命令行c ++程序,如下所示,从命令行获取stdin。我在Mac上打开了2个SSH终端。一个是/ dev / ttys001,一个是/ dev / ttys000。我想在一个终端中回显一个值,并使用我的程序在第二个终端的stdin中使用它。我似乎无法做到这一点。什么是正确的语法?谢谢 -
我尝试过以下各种变化,但没有运气。在我正在运行./test的终端中,它提示输入数字,来自另一个终端的回声肯定会出现在控制台上,但程序没有将其视为标准输入?
1号航站楼:
./test < /dev/ttys001
2号航站楼:
echo 2 > /dev/ttys001
我的节目:
#include <iostream>
using namespace std;
int main() {
cout << "Enter a number: ";
int nb;
cin>>nb;
cout << "Here is your number:" << nb << endl;
return 0;
}
答案 0 :(得分:2)
我不确定你能这样做。但是,您可以使用命名管道。在终端1:
mkfifo mypipe
myprogram < mypipe
然后在终端2:
echo > mypipe
然后输入。但是你的代码看起来只会执行一次然后终止,所以你可能想要添加一个循环。