|
发表于 2022-7-30 15:02:45
|
显示全部楼层
本帖最后由 jackz007 于 2022-7-30 15:07 编辑
x.c
- #include <stdio.h>
- int items(char s[])
- {
- int c , i ;
- for(i = 0 ; s[i] == ' ' || s[i] == '\t' ; i ++) ;
- for(c = 0 ; s[i] ; c ++) {
- for(; s[i] && s[i] != ' ' && s[i] != '\t' ; i ++) ;
- for(; s[i] == ' ' || s[i] == '\t' ; i ++) ;
- }
- return c ;
- }
- char * next(char s[])
- {
- int i ;
- for(i = 0 ; s[i] == ' ' || s[i] == '\t' ; i ++) ;
- for(; s[i] && s[i] != ' ' && s[i] != '\t' ; i ++) ;
- for(; s[i] == ' ' || s[i] == '\t' ; i ++) ;
- if(s[i]) return & s[i] ;
- else return NULL ;
- }
- int getvalue(char s[])
- {
- int i , v = -1 ;
- for(i = 0 , v = -1 ; s[i] && s[i] != '=' ; i ++) ;
- if(s[i]) sscanf(& s[i + 1] , "%d" , & v) ;
- return v ;
- }
- int main(void)
- {
- FILE * fp ;
- int d[8000][10] , i , j , n ;
- char s[2048] , * p ;
- if(fp = fopen("x.txt" , "r")) {
- fgets(s , 2048 , fp) ;
- for(i = 0 ; ! feof(fp) ;) {
- if(items(s) == 11) {
- p = next(s) ;
- for(j = 0 ; j < 10 && p ; j ++) {
- d[i][j] = getvalue(p) ;
- p = next(p) ;
- }
- i ++ ;
- }
- fgets(s , 2048 , fp) ;
- }
- fclose(fp) ;
- for(n = i , i = 0 ; i < n ; i ++) {
- printf("char id = %-2d" , d[i][0]) ;
- printf(" x = %-3d" , d[i][1]) ;
- printf(" y = %-3d" , d[i][2]) ;
- printf(" weight = %-2d" , d[i][3]) ;
- printf(" height = %-2d" , d[i][4]) ;
- printf(" xoffset = %-2d" , d[i][5]) ;
- printf(" yoffset = %-2d" , d[i][6]) ;
- printf(" xadvance = %-2d" , d[i][7]) ;
- printf(" page = %-2d" , d[i][8]) ;
- printf(" chnl = %-2d\n" , d[i][9]) ;
- }
- } else {
- fprintf(stderr , "无法打开输入文件!\n") ;
- }
- }
复制代码
x.txt
- info face="微软雅黑" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0 // 这是字体的基本信息
- common lineHeight=32 base=26 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0 // 这是字体中字符的基本信息
- page id=0 file="test_0.tga"
- chars count=10
- char id=48 x=0 y=0 width=14 height=21 xoffset=0 yoffset=6 xadvance=15 page=0 chnl=15
- char id=49 x=101 y=0 width=8 height=20 xoffset=2 yoffset=6 xadvance=15 page=0 chnl=15
- char id=50 x=73 y=0 width=13 height=20 xoffset=1 yoffset=6 xadvance=15 page=0 chnl=15
- char id=51 x=45 y=0 width=13 height=21 xoffset=1 yoffset=6 xadvance=15 page=0 chnl=15
- char id=52 x=110 y=0 width=16 height=19 xoffset=-1 yoffset=7 xadvance=15 page=0 chnl=15
- char id=53 x=87 y=0 width=13 height=20 xoffset=1 yoffset=7 xadvance=15 page=0 chnl=15
- char id=54 x=59 y=0 width=13 height=21 xoffset=1 yoffset=6 xadvance=15 page=0 chnl=15
- char id=55 x=127 y=0 width=13 height=19 xoffset=1 yoffset=7 xadvance=15 page=0 chnl=15
- char id=56 x=15 y=0 width=14 height=21 xoffset=0 yoffset=6 xadvance=15 page=0 chnl=15
- char id=57 x=30 y=0 width=14 height=21 xoffset=0 yoffset=6 xadvance=15 page=0 chnl=15
复制代码
编译、运行实况:
- D:\[00.Exerciese.2022]\C>g++ -o x x.c
- D:\[00.Exerciese.2022]\C>x
- char id = 48 x = 0 y = 0 weight = 14 height = 21 xoffset = 0 yoffset = 6 xadvance = 15 page = 0 chnl = 15
- char id = 49 x = 101 y = 0 weight = 8 height = 20 xoffset = 2 yoffset = 6 xadvance = 15 page = 0 chnl = 15
- char id = 50 x = 73 y = 0 weight = 13 height = 20 xoffset = 1 yoffset = 6 xadvance = 15 page = 0 chnl = 15
- char id = 51 x = 45 y = 0 weight = 13 height = 21 xoffset = 1 yoffset = 6 xadvance = 15 page = 0 chnl = 15
- char id = 52 x = 110 y = 0 weight = 16 height = 19 xoffset = -1 yoffset = 7 xadvance = 15 page = 0 chnl = 15
- char id = 53 x = 87 y = 0 weight = 13 height = 20 xoffset = 1 yoffset = 7 xadvance = 15 page = 0 chnl = 15
- char id = 54 x = 59 y = 0 weight = 13 height = 21 xoffset = 1 yoffset = 6 xadvance = 15 page = 0 chnl = 15
- char id = 55 x = 127 y = 0 weight = 13 height = 19 xoffset = 1 yoffset = 7 xadvance = 15 page = 0 chnl = 15
- char id = 56 x = 15 y = 0 weight = 14 height = 21 xoffset = 0 yoffset = 6 xadvance = 15 page = 0 chnl = 15
- char id = 57 x = 30 y = 0 weight = 14 height = 21 xoffset = 0 yoffset = 6 xadvance = 15 page = 0 chnl = 15
- D:\[00.Exerciese.2022]\C>
复制代码 |
|