关于字符串的读取操作
现在对文本文件进行读取,准本每次读取一行到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.
//