相关疑难解决方法(0)

从std :: cin读取二进制数据

将二进制(非格式化)数据读std::cin入a string或a中的最简单方法是stringstream什么?

c++ binary stdin stream cin

14
推荐指数
2
解决办法
2万
查看次数

ifstream.eof() - 在真实结束之前到达文件末尾

我有一个大约11.1G的二进制文件,其中存储了Kinect的一系列深度帧.此文件中有19437个帧.要每次读取一帧,我在fstream中使用ifstream,但它在文件的真实结束之前达到eof.(我只得到了前20帧,并且由于eof标志,函数停止了)

然而,所有的帧可以通过读取FREAD标准输入输出来代替.

谁能解释这种情况呢?感谢您在我的问题上花费宝贵的时间.

这是我的两个功能:

// ifstream.read() - Does Not Work: the loop will stop after 20th frame because of the eof flag
ifstream depthStream("fileName.dat");
if(depthStream.is_open())
{
  while(!depthStream.eof())
  {
    char* buffer = new char[640*480*2];
    depthStream.read(buffer, 640*480*2);

    // Store the buffer data in OpenCV Mat

    delete[] buffer;
  }
}

// fread() - Work: Get 19437 frames successfully
FILE* depthStream
depthStream = fopen("fileName.dat", "rb");
if(depthStream != NULL)
{
  while(!feof(depthStream))
  {
    char* …
Run Code Online (Sandbox Code Playgroud)

c++ ifstream fread

9
推荐指数
1
解决办法
5401
查看次数

标签 统计

c++ ×2

binary ×1

cin ×1

fread ×1

ifstream ×1

stdin ×1

stream ×1