112312,123123,342423,21303,张建,2007-12-27,,正常,正常\n
112312,123123,342423,21303,张丽,2007-12-27,2007-12-27,不正常,正常\n现在上面这组数据我需要提取出来!
我使用的方法是
while()
{
sscanf(strline,"%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,]",a1,a2,a3,a4,a5,a6,a7,a8,a9); 
}
这样做的strline是当前行的数据。a1...a9是char[]再取第二行的时候数据是正常的。
在去第一行的时候就在,,这个字段出错因为没有数据!
应该怎么改啊?

解决方案 »

  1.   

    先对字符串strline做一下自动处理
    在所有的,,之间加一个数据比如:0呵呵,不知道这样行不行
      

  2.   

    问题使用替换解决了。但是还是不知道sscanf为什么对空的字段回出错了。
    希望高手解答一下。
    下面是我的代码
    char a1[10],a2[10],a3[10],a4[10],a5[10],a6[10],a7[10],a8[20],a9[10];
    sscanf(strline,"%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%^,]",a1,a2,a3,a4,a5,a6,a7,a8,a9); 
    CString str5;
    str5.Format("a1=%s\na2=%s\na3=%s\na4=%s\na5=%s\na6=%s\na7=%s\na8=%s\na9=%s",a1,a2,a3,a4,a5,a6,a7,a8,a9);
    AfxMessageBox(str5);谁也sscanf的源代码也可以共享一下嘛。