导入一个文件,并能够发现其中的特殊的字符串,比如"aabbcc"。

解决方案 »

  1.   

    用CStdioFile的ReadString(str)读取文件的一行,然后解析str
    str.Find("aabbcc");
      

  2.   

    可以使用STL中的fstream中的getline来读出一行字符串,对其查找子串
    也可以使用楼上的方法CStdioFile的ReadString读取一行,在对这行取子串
      

  3.   

    不能放到字符串中,因为有些'\0'字符,也需要比较。
    而且不光要找到,还要能定位,比如如果找到"aabbcc",就把接下来的内容导入,直到出现"ccbbaa"。
      

  4.   

    字节流读取,存入字符类型的缓冲区中,根据读入的字符个数作一循环查找相应的字符串
    如果不可以全部读入的话,可以对边界作一些处理。算法如下
    char buf[MAX_BUF];
    char tofind[MAX_STR];
    char strTemp[MAX_STR];
    strcpy( tofind, "aabbcc" );
    int nToCpy = strlen(tofind)-1;
    size_t nLen;
    FILE fp = fopen( filename,"rb");nLen = fread( buf, sizeof(char), MAX_BUF, fp );
    从buf里查找tifind同时作你的处理;
    while( !feof(fp) )
    {
       memcpy( strTemp, buf[len-nToCpy-1],nToCpy );//边界处理,保留buf中最后nToCpy个
                                                  //字符
       nLen = fread( buf+nToCpy, sizeof(char), MAX_BUF, fp );
       从buf里查找tifind同时作你的处理;}
    fclose(fp);
      

  5.   

    忘了在memcpy( strTemp, buf[len-nToCpy-1],nToCpy );//边界处理,保留buf中最后nToCpy个
                                                  //字符
    加入
    memcpy( buf, strTemp, nToCpy );
      

  6.   

    呵呵,还有第二句的
     nLen = fread( buf+nToCpy, sizeof(char), MAX_BUF, fp );
    改为
     nLen = fread( buf+nToCpy, sizeof(char), MAX_BUF-nToCpy, fp );
      

  7.   

    用CFile的Read读取数据,如何改变读取位置指针?
      

  8.   

    你用fstream 可能比较好 用seekp,seekg可以改变位置指针,rdbuf得到读取的全部内容