>> ifstream上的运算符

时间:2013-12-13 02:21:25

标签: c++ ifstream

想知道错误是什么..

  

c:lab1a.cpp(16):错误C2678:二进制'>>' :找不到哪个运算符带有'std :: ifstream'类型的左手操作数(或者没有可接受的转换)

#include "StdAfx.h"  // precompiled
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstdlib>
#include <ctime>

#include <vector>

using namespace std;

// No checking of end of stream etc.
void getw(string& t, ifstream& in)
{
  in >> t;
}

1 个答案:

答案 0 :(得分:0)

此代码的主要错误是缺少<string>标头。

除了接口本质上是坏的,因为它不支持检查错误(我意识到仍然可以检查流的状态,但返回流的状态使其更有可能被检查)。此外,这样的函数应该以{{1​​}}而非std::istream的字体实现,因为它不使用std::ifstream的任何细节。