小编Dav*_*vid的帖子

C++从文件流中读取unsigned char

我想从二进制文件中读取无符号字节.所以我写了下面的代码.

#include <iostream>
#include <fstream>
#include <vector>
#include <istream>

std::string filename("file");
size_t bytesAvailable = 128;
size_t toRead = 128;

std::basic_ifstream<unsigned char> inf(filename.c_str(), std::ios_base::in | std::ios_base::binary) ;
if (inF.good())
{
    std::vector<unsigned char> mDataBuffer;
    mDataBuffer.resize(bytesAvailable) ;
    inF.read(&mDataBuffer[0], toRead) ;
    size_t counted = inF.gcount() ;
}
Run Code Online (Sandbox Code Playgroud)

这导致读取始终为0字节,如计数变量所示.

网上似乎有一些引用说我需要设置语言环境才能使其正常工作.如何做到这一点对我来说并不清楚.

相同的代码使用数据类型'char'而不是'unsigned char'

上面使用unsigned char的代码似乎可以在Windows上运行,但无法在colinux Fedora 2.6.22.18中运行.

为了让它适用于linux,我需要做些什么?

c++ file-io stream ifstream

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

标签 统计

c++ ×1

file-io ×1

ifstream ×1

stream ×1