我是一名物理学家,通常情况下,我只想完成计算,这就是我真正需要的。尽管如此,我之前一直在使用
int main(int argc, char* argv[])
令人愉悦的是,二进制在我没有预料到的层面上变得更加灵活,例如初始化变量。
~$ ./program.exe a b c (a, b and c are numbers in this case, not letters ok?)
所以问题是:
*如何在不使用文件的情况下进行类似于“解析”或“管道传输”的操作?*
例如:假设“a.exe”提供了一组“X-Y”点(类似于电子表格上的点),我想将其插入到“b.exe”中。或者说,我使用bash/awk脚本来格式化“a.exe”的输出格式,以便在gnuplot上绘制它。
-----------------------------------------
您好。我仍在尝试做到这一点,但仍然遇到问题。
为了看出我做错了什么,我编写了最简单的程序。
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int main(int argc, char* argv[]){
for (int i = 0; i <= argc; i++)
cout << "argv[" << i << "]= " << argv[i] << endl;
getchar();
return 0;
}
并创建了一个内容为(假设是“test.dat”)的文件。
1
2
3
4
5
6
由于我不想在我的程序中读取文件的内容,只是想把它“扔”进去,所以我尝试过
more test.dat | ./program.exe
甚至可以
./program.exe << EOF
1 2 3 4 5
EOF
但它无效了,我原以为它可以工作。再次感谢您。
cat test.dat | xargs preogram.exe
- Jerry Jeremiah