这basic_istream::tellg()
是VS2010中函数的定义。请注意,该函数返回一个类型为 的变量pos_type
。但是,当我将streamoff
下面给出的示例中使用的类型替换为 时pos_type
,编译器会抱怨(C2065:'pos_type':未声明的标识符)。
pos_type
定义<fstream>
为typedef typename _Traits::pos_type pos_type;
。
// basic_istream_tellg.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
int main()
{
using namespace std;
ifstream file;
char c;
streamoff i; // compiler complains if I replace streamoff by pos_type
file.open("basic_istream_tellg.txt");
i = file.tellg();
file >> c;
cout << c << " " << i << endl;
i = file.tellg();
file >> c;
cout << c << " " << i << endl;
}