[英]Read file as input from the command line
我试图从作为输入传递的命令行中读取文件。 不,不是文件名。 我不希望用户在命令行输入文件名,因此我可以这样打开它: fopen(argv[1], "r");
。
我期待这样的文件: myprogram < file_as_input
。 所以进入argv应该是文件的内容。 我如何在C / C ++中执行此操作?
当调用类似./a.out < file
, ./a.out < file
的内容将在标准输入上可用: stdin
。
这意味着您可以通过阅读标准输入来阅读此内容。
例如:
read(0, buffer, LEN)
将从您的文件中读取。 getchar()
将从您的文件中返回一个char。 在命令行上使用重定向时,argv不包含重定向。
指定的文件只是你的stdin / cin。
因此无需使用fopen
打开它,只需从标准输入中读取即可。
示例:
using namespace std;
int main()
{
vector <string> v;
copy(istream_iterator<string>(cin),
istream_iterator<string>(),
back_inserter(v));
for(auto x:v)
cout<<x<<" ";
return 0;
}
测试
<input.txt
产量
input.txt的内容由空格分隔
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.