main.cpp 接受2个命令行参数,打开名为“exampleTest.txt”的文件并向该文件写入内容。
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char const *argv[])
{
ofstream op;
op.open("exampleTest.txt",ios::out);
op<<argv[1]<<"\n"<<argv[2]<<endl;
op.close();
return 0;
}
pgm1.cpp 打开名为 "exampleTest.txt" 的文件,并显示该文件的内容。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(int argc, char const *argv[])
{
string line;
ifstream fs;
fs.open("exampleTest.txt",ios::in);
if (fs.is_open())
{
while(getline(fs,line))
{
cout<<line<<endl;
}
}
fs.close();
return 0;
}
将这两个程序编译并分别运行是完全没有问题的。然而,我想将 main.cpp 的输出导入到程序 pgm1.cpp 中。
我尝试过:
g++ main.cpp -o main
g++ pgm1.cpp -o pgm
./pgm |./main abc def
What i expect the output to be:
abc
def
What i am getting:
<no output>
我的理解: 'main'创建了文件'exampleTest.txt',并将abc def作为输入添加到该文件中。当该文件被传递给'pgm'(通过管道),它应该能够读取文件的内容并输出。
abc
def
在终端中,我没有得到任何输出。(如果我分别运行每个文件,则可以正常工作)
请问我错过了什么?