Visual c++ MS Visual c++;2008字符缓冲区比定义的长

Visual c++ MS Visual c++;2008字符缓冲区比定义的长,visual-c++,file-io,arrays,binary,buffer,Visual C++,File Io,Arrays,Binary,Buffer,我有一个char*缓冲区来保存我以二进制模式读取的文件。我知道文件的长度是70字节,这是用于生成正确大小的缓冲区的值。问题是,数组中有17或18个额外的空格,因此在末尾添加了一些随机字符。这可能是一个unicode问题吗 ulFLen以字节为单位存储文件大小,并具有正确的值(对于我正在测试的文件为70) //设置一个缓冲区来存储文件 pcfBuffer=新字符[ulFLen]; //读取文件 cout由于它是一个char数组,您可能忘记了一个终止NUL字符 在这种情况下,正确的方法是: //Se

我有一个char*缓冲区来保存我以二进制模式读取的文件。我知道文件的长度是70字节,这是用于生成正确大小的缓冲区的值。问题是,数组中有17或18个额外的空格,因此在末尾添加了一些随机字符。这可能是一个unicode问题吗

ulFLen以字节为单位存储文件大小,并具有正确的值(对于我正在测试的文件为70)

//设置一个缓冲区来存储文件
pcfBuffer=新字符[ulFLen];
//读取文件

cout由于它是一个
char
数组,您可能忘记了一个终止NUL字符

在这种情况下,正确的方法是:

//Set up a buffer to store the file and a terminating NUL character
pcfBuffer = new char[ulFLen+1];

//Reading the file
cout<<"Inputting File...";
fStream.seekg(0,ios::beg);
fStream.read(pcfBuffer,ulFLen);
if(!fStream.good()){cout<<"FAILED"<<endl;}else{cout<<"SUCCESS"<<endl;}

// Add NUL character
pcfBuffer[ulFLen] = 0;
//设置缓冲区以存储文件和终止NUL字符
pcfBuffer=新字符[ulFLen+1];
//读取文件

cout由于它是一个
char
数组,您可能忘记了一个终止NUL字符

在这种情况下,正确的方法是:

//Set up a buffer to store the file and a terminating NUL character
pcfBuffer = new char[ulFLen+1];

//Reading the file
cout<<"Inputting File...";
fStream.seekg(0,ios::beg);
fStream.read(pcfBuffer,ulFLen);
if(!fStream.good()){cout<<"FAILED"<<endl;}else{cout<<"SUCCESS"<<endl;}

// Add NUL character
pcfBuffer[ulFLen] = 0;
//设置缓冲区以存储文件和终止NUL字符
pcfBuffer=新字符[ulFLen+1];
//读取文件

cout在读取数据后添加以下代码段,它将添加所需的终止零

顺便说一句,它应该是
pcfBuffer=newchar[ulFLen+1]

size_t read_count = fStream.gcount();
if(read_count<=ulFlen)
    pcfBuffer[read_count]=0;
size\u t read\u count=fStream.gcount();

如果(read_count在读取数据后添加以下代码段,它将添加所需的终止零

顺便说一句,它应该是
pcfBuffer=newchar[ulFLen+1];

size_t read_count = fStream.gcount();
if(read_count<=ulFlen)
    pcfBuffer[read_count]=0;
size\u t read\u count=fStream.gcount();
如果(读取计数)