首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于字符串的读取操作解决思路

2013-10-11 
关于字符串的读取操作现在对文本文件进行读取,准本每次读取一行到CString类进行处理,现有CString读入了这

关于字符串的读取操作
现在对文本文件进行读取,准本每次读取一行到CString类进行处理,现有CString读入了这样格式的一行数据
 0001:000000b0       _printf                    004010b0 f   LIBCD:printf.obj
之间均是以空格填充,每一行的第一个和第三个数据是定长的,难点在于第二个和第四个字符串是不定长的,字符串并没有/0结束,也是由空格填充。我该如何进行操作将这四个数据快速分离开存入如下结构体:
struct a
{
  int a1;
  char name1[255];
  int a2;
  char name2[255];
}
主要解决如何把不定长得两个字符串放到name1和name2中。。。。。 cstring 数据 字符串 文本操作 类
[解决办法]

#include <stdio.h>
char ln[]="0001:000000b0       _printf                    004010b0 f   LIBCD:printf.obj";
struct a {
  int s;
  int a1;
  char name1[255];
  int a2;
  char flag[5];
  char name2[255];
} b;
int main() {
    if (6==sscanf(ln,"%4x:%8x%254s%8x%4s%254s",&b.s,&b.a1,b.name1,&b.a2,b.flag,b.name2)) {
        printf("s:a1,name1,a2,flag,name2=%04x:%08x,%s,%08x,%s,%s.\n",b.s,b.a1,b.name1,b.a2,b.flag,b.name2);
    } else {
        printf("Format error!\n");
    }
    return 0;
}
//s:a1,name1,a2,flag,name2=0001:000000b0,_printf,004010b0,f,LIBCD:printf.obj.
//

热点排行