将文件内容作为参数传递到C++;程序 使用C++,需要将文件的内容作为参数传递给程序,阿纳尔。
如果要以这种方式传递参数,请使用将文件内容作为参数传递到C++;程序 使用C++,需要将文件的内容作为参数传递给程序,阿纳尔。,c++,C++,如果要以这种方式传递参数,请使用xargs: cat file | xargs./maincat file |/main将通过管道将文件内容传输到/main的输入,而不是参数 如果要以这种方式传递参数,请使用xargs: cat file | xargs./main虽然@lilistence有一个很好的解决方案,但以下方法也很有效(我提到它是为了完整性,因为我觉得它更具可读性): 这将获取名为file的文件的内容(因为它解释$(和))中的命令),并将它们作为参数传递给/main,而@lilist
xargs
:
cat file | xargs./maincat file |/main
将通过管道将文件内容传输到/main
的输入,而不是参数
如果要以这种方式传递参数,请使用xargs
:
cat file | xargs./main
虽然@lilistence有一个很好的解决方案,但以下方法也很有效(我提到它是为了完整性,因为我觉得它更具可读性):
这将获取名为file
的文件的内容(因为它解释$(
和)
)中的命令),并将它们作为参数传递给/main
,而@lilisten有一个很好的解决方案,下面的方法也很有效(我提到它是为了完整,因为我觉得它更可读):
这将获取名为file
的文件的内容(因为它解释$(
和)
)中的命令),并将其作为参数传递给/main
没有名为C/C++的语言,管道将其发送到stdin
(即,您需要使用cin
来检索它),我想您需要xargs
没有一个叫做C/C++的语言,管道将它发送到stdin
(即,您需要使用cin
检索它),我想您需要xargs
#include <fstream>
#include <iostream>
int main(int argc, char **argv)
{
std::cout << "Have " << argc << " arguments:" << std::endl;
for (int i = 0; i < argc; ++i) {
std::cout << argv[i] << std::endl;
}
std::istream* input = &std::cin;
if(argc > 1) {
std::cout << input;
std::cout << "more than argument found\n";
}
std::string inputs;
std::cout<< "1:\n";
std::cout<< argv[0];
std::cout<< "\n2:\n";
std::cout<< argv[1];
std::cout<< "\n3:\n";
std::cout<< input;
std::cout<< "\nEnd\n";
return 0;
}
int main() {
// read input
for (std::string line; std::getline(std::cin, line);) {
std::cout << line << std::endl;
}
return 0;
}
./main $(cat file)