【问题标题】:Read two files at the same time同时读取两个文件
【发布时间】:2018-06-06 01:17:01
【问题描述】:

我有两个文件names.txtaddresses.txt,它们的行数相同。

我想同时读取这两个文件,并为每一行打印一个名称,后跟一个地址。但我读到我不能同时拥有两个ifstreams。

我不是在寻找替代方法,我想这样做

【问题讨论】:

  • 你不能在完全相同的时刻拥有它们,但你可以让它们非常接近
  • 您可以同时拥有 2 个 ifstream。这里没有任何问题
  • “但我读到我不能同时拥有 2 个 ifstream。” - 您的代码可以同时打开多个 ifstream。有一些限制,但比 2 多很多。
  • @JakeFreeman - 帖子有变化吗?除了这些 cmets,我在任何地方都找不到“确切”这个词。
  • 无论你读到什么说你不能同时拥有两个 ifstream 对象都是错误

标签: c++ file


【解决方案1】:

为了本示例的目的,同时读取两个fstreams 就是这样。

fstream names("names.txt");
fstream add("addresses.txt");
string n, a;
while(getline(names, n) && getline(add, a))
{
    cout<<n<<" "<<a<<endl;
}

希望这会有所帮助。

【讨论】:

  • 这实际上可以通过同时读取来考虑,因为在读取一个文件和另一个文件之间没有任何反应。
  • @Fureeish 很公平,虽然没有复杂的线程,但它不可能在完全相同的时间。
  • 即使使用复杂的线程也不能同时完成。即使设置一个固定的时间点开始执行读取也不能保证它同时开始
  • 即使使用线程,您的硬件也可能不支持它。我的意思是一个硬盘驱动器不会同时读取 2 个文件。
  • @Fureeish 我更新了答案以反映您的建议
猜你喜欢
  • 1970-01-01
  • 2014-05-27
  • 1970-01-01
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-30
  • 1970-01-01
相关资源
最近更新 更多