ifstream _Read_s发生了什么?

时间:2014-03-07 09:46:40

标签: c++ visual-studio-2010 visual-c++ stl

我正在将Visual Studio解决方案从2005版移植到2010版。

其中一个项目是使用ifstream的原生C ++项目。

转换过程完成了,但是当我尝试构建本机项目时,编译器说“_Read_s不是ifstream的成员”。

_Read_s发生了什么?

有些编译器更改会使方法无法访问吗?

这是visual studio 2005正确构建的代码:

ifstream binfile(pathFileToRead, ios::in | ios::binary | ios::beg);

while (!binfile.eof())
{
    binfile._Read_s(fileBuffer, CACHE_SIZE, CACHE_SIZE);

    //Do something with fileBuffer
}

1 个答案:

答案 0 :(得分:2)

看起来非标准basic_istream::_Read_s()仅存在于VS 2005和VS 2008中。

您可能只需将其更改为使用标准basic_istream::read()函数:

binfile.read(fileBuffer, CACHE_SIZE);