1.若将某一ifstream类的对象作为函数的参数进行传递时,要用参数引用&
eg.
void foo(ifstream ifs) {} // 编译出错
void foo(ifstream& ifs) {} // 编译成功
这是因为stream不能被复制
但函数调用时应该怎么写?
正常的将对象(如ifs)作为输入参数即可
2.使用ifstream的read函数时怎样看读入的字节数(用于查看是否成功读入某特定大小字节数)
可以结合tellg函数与streampos类。
tellg()是C++文件流操作中获得流指针的函数,获得指针位置。
而streampos类表示指针位置这一类型。
eg.
ifstream file;
streamoff i,j,k;
ifstream fin("E:\\FIO\\20150703\\program\\readfile_raw_all\\0001_20100715_101159_raw.all",ios::binary);
……
……
i = file.tellg();
fin.read((char*)ch,256);
j = file.tellg();
k=j - i;
file >> c;
k就是读入的字节数