首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用重定向标准输入(即cin)读取文件(注:不使用ifstream)

如何使用重定向标准输入(即cin)读取文件(注:不使用ifstream)
EN

Stack Overflow用户
提问于 2017-01-07 09:12:12
回答 3查看 1.6K关注 0票数 1

加:我通过编辑VS2013中属性页面中的命令argumennts来重定向标准输入。我正在做一个小项目,它要求我在不使用ifstream的情况下读取一个文件,因为据说:您可以使用的唯一库是iostream、iomanip和string。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-07 09:26:38

当文件被重定向到stdin (标准输入)时,您应该从std::cin (std::istream实例)中读取,后者是stdin的包装器。std::basic_ifstreamstd::basic_istream的一个子类,所以大多数读取函数都是可用的,您应该熟悉它们。这意味着您可以使用:

  • std::getline逐行读取文件: std::<< s << std::endl;}
  • operator >>读取由空格字符分隔的字段: 时间( std::cin ){ std::string s;std::cin >> s;std::cout << s << std::endl;}

查看它的操作符和函数的完整列表,在这里:istream

票数 -1
EN

Stack Overflow用户

发布于 2017-01-07 09:38:51

您希望将cin重定向到文件,为此,需要使用

ios::rdbuf()

看一看这里

再来几个这里这里

票数 0
EN

Stack Overflow用户

发布于 2017-01-07 09:18:13

您可以使用"freopen“功能。示例:

freopen("input.txt","r",stdin)

这意味着您读取了一个文件"input.txt“并将其内容保存为"stdin”。现在你可以用"cin“了。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41519770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档