VC Binary 文件 BYTE的读写
需要在VC里将一个binary的文件读到
BYTE Ref[256] 里面
- C/C++ code
ifstream myFile;myFile.open("Dell.sv",ios::in|ios::binary);myFile.Read()..... 只可以是 char的形式网上找到一段类似的代码,用于WORD的
- C/C++ code
istream& read_word( istream& ins, Word& value ) { for (unsigned size = 0, value = 0; size < sizeof( Word ); ++size) value |= ins.get() << (8 * size); return ins; }改成了 BYTE
- C/C++ code
istream& read_BYTE( istream& ins, BYTE& value ){ for (unsigned size = 0, value = 0; size < sizeof(BYTE); ++size) value |= ins.get() << (4 * size); return ins; }- C/C++ code
ifstream myFile; myFile.open("Dell.sv",ios::in|ios::binary); cout<<"File Name is :"<<FileName<<endl; for (int i=0;i<=255;i++) { read_BYTE(myFile,Ref[i]); } cout<<"Loading complete"<<endl;结果读不到,不知道是不是 ifstream 和 istream 转换的问题,如果是应该怎么做呢?
此外 binary的输出 以前都是
- C/C++ code
printf("%X",..); C++里应该怎么做?初学者 还望各位前辈多多指教
多谢了。
[解决办法]
BYTE 就是unsigned char
应该直接myFile >> Ref;
就能读了吧
printf("%x") 是转成16进制输出
printf("%x\n", 11);
cout << hex << 11 << endl;
[解决办法]
- C/C++ code
#include <iostream>#include <fstream>#include <string>using namespace std;void main(){ ifstream infile("E:\\1.txt",ios::in);//这里改下第一个参数即可 if(!infile) { cout<<"open error!"<<endl; exit(1); } char buf[256]; char strall[1000] = {0}; while(infile.getline(buf,256)) { printf("%s\n",buf);//buf里是每行的值 strcat(strall, buf); printf("%s\n",strall);//这里是全部文件的 } system("pause"); }