繁体   English   中英

从命令行读取文件作为输入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM