- 注册时间
- 2006-3-28
- 最后登录
- 2008-6-4
⑧专业
絕望青年,一起增高吧
- 积分
- 13676
|
发表于 2007-8-14 17:42:38
|
显示全部楼层
其實用binary mode寫入字串是沒有意義的
Z的二進制碼便是ASCII Code代表Z的代碼,在wordpad開啟,wordpad把ASCII Code顯示成'Z'也是十分正常的事
某把先前作實驗用的源碼貼上來
實驗中使用了讀的程式
只要改成write便沒有問題
其中最重要的一項便是指標的轉換,重點所在
- #include <iostream>
- #include <fstream>
- using namespace std;
- int main(){
- ifstream fnt;
- fnt.open("rockfont-8.fnt",ios::in|ios::binary);
- char a0[6];
- unsigned short maxwidth;
- unsigned short height;
- unsigned short ascent;
- unsigned short pad;
- unsigned int firstchar;
- unsigned int defaultchar;
- unsigned int size;
- unsigned int nbit;
- unsigned int noffset;
- unsigned int nwidth;
- fnt.read(a0,4);
- fnt.read((char*)&maxwidth,2);
- fnt.read((char*)&height,2);
- fnt.read((char*)&ascent,2);
- fnt.read((char*)&pad,2);
- fnt.read((char*)&firstchar,4);
- fnt.read((char*)&defaultchar,4);
- fnt.read((char*)&size,4);
- fnt.read((char*)&nbit,4);
- fnt.read((char*)&noffset,4);
- fnt.read((char*)&nwidth,4);
- cout << "Max Width:" << maxwidth <<endl
- << "Height:" << height <<endl
- << "Ascent:" << ascent << endl
- << "First Char:"<< firstchar << ":" << (char) firstchar<<endl
- << "Default Char:"<< defaultchar << ":" << (char) defaultchar<<endl
- << "Size:" << size << endl
- << "Nbit:" << nbit << endl
- << "Noffset:" << noffset << endl
- << "Nwidth:" << nwidth << endl;
- return 0;
- }
复制代码 |
|