Say I have the following simple C++ program,
JavaScript
x
#include <bits/stdc++.h>
using namespace std;
int main() { //no argv or argc allowed
cin >> t;
while(t--) {
int n;
cin >> n;
// do whatever
}
}
and the following command in terminal:
JavaScript
g++ -std=c++17 -O2 -lm b.cpp && ./a.out
When I run this command, it will ask for my input and I have to copy and paste over the input like the following:
JavaScript
7
1 2
2 4
2 6
7 5
3 6
4 6
7 2
Is there a way for this to happen in one pass? I don’t mind copy and pasting each time, however I am planning on making a shell script to automate this for me. Basically, it takes the input stored in a remote HTTP server, and then passes it through a C++ program. The caveat is, for some reason I am not allowed to write files, so I can’t do fstream/freopen.
Advertisement
Answer
Process substitution is not the right way to do this. Use a heredoc:
JavaScript
g++ -std=c++17 -O2 -lm b.cpp && ./a.out << EOF
7
1 2
2 4
2 6
7 5
3 6
4 6
7 2
EOF