如何以二进制形式打开一个任意格式文件,然后每次读出若干字节呢?
比如打开一个文件,每次读一个字节,依次放入一个数组。
以下是我写的代码:
unsigned char bitchar[16];
char * bitchar1;
ifstream myfile( "文件名和路径",ios::in|ios::binary);
for(int i=0;i<16;i++) // 假设总共只读16个字节
{
myfile.get((char*)bitchar1,1); //每次读一个放到数组中
bitchar[i]=*bitchar1;
}
for(int i=0;i<16;i++)
{
cout<<"bitchar[i]<<endl;// 把数组中内容依次显示。
}
在myfile.get((char*)bitchar1,1)这句中如果第二个参数用1的话,读不出来内容,
如果改成myfile.get((char*)bitchar1,2);反而能每次读出一个字节。
请大家分析一下这是什么原因呢?
另外,还有没有更好的方法一次读出若干字节呢?比如每次读8个,知道把整个文件读完。