CStdioFile myFile;
    myFile.Open (strPathAndFile,CFile::modeRead);//打开文件
while(myFile.ReadString (str))  //按行取出文件内容直到取完,(注:文件第一行为文件路经和文件名,以下各行每行都为三个%-25s\t格式)
              {
                  char chr[]="";
char chr1[]="";
char chr2[]="";
char buffer[512] = "";
strcpy(buffer,str);//把每行 内容取出到buffer
sprintf(buffer,"%s\t%s\t%s\t",chr,chr1,chr2);//把每行的三个%-25s\t分别存放到chr,chr1,chr2
问题1:buffer 有内容,但不能放进chr,chr1,chr2!
    2:现在我想在取文件的时候跳过第一行从第二行开始取应该怎么做?

解决方案 »

  1.   

    sprintf(buffer,"%s\t%s\t%s\t",chr,chr1,chr2);
    这个分解方法只支持以空格为分隔符。\t不行 2:现在我想在取文件的时候跳过第一行从第二行开始取应该怎么做?
    在循环前先ReadString一次就行了。
      

  2.   

    1,sprintf象是要改成sscanf。
    2,在open后加上一句,readstring看看。
      

  3.   

    新问题出现:
    用sscanf可以支持buffer,"%s\t%s\t%s\t",chr,chr1,chr2)的格式把buffer中的字段按制表符分别放入chr,chr1,chr2,但是它还默认了空格键,就是说本来希望把按制表符划分的字符放入chr,chr1,chr2,现在它也按照空格键划分放入了,我想跳过空格只按制表符划分,有这样的方法吗?
      

  4.   

    你把制表符组合到你的字符串中。就是在你的sscanf()后
    char tmp[]="\t";
    strcat(tmp,chr);
    看看这样行不行?