用fstream ,可以以行为单位读取,然后,存入到二位数组,
删除的时候,直接,根据index 就可以删除。
第一:不要忘了,回写文件,
第二:如果数据很多,会很浪费内存。

解决方案 »

  1.   

    //从out中读入到pFile,由pFile-->pWrite,由pWrite写入out1.dat
    FILE * pFile;
    FILE * pWrite;
    char buffer[100] = {0}; pWrite = fopen( "out1.dat", "w+" );
    if( NULL == pWrite ) return;

    pFile = fopen ("out.dat" , "r");
    if (pFile == NULL) perror ("Error opening file");
    else
    { while ( !feof(pFile) )
    {
    fgets( buffer , 100 , pFile );
    m_lbShow.AddString( buffer ); //在这里设定你写到pWrite的规则。
    fputs( buffer, pWrite ); fflush( pWrite );
    }
    fclose( pFile );
    fclose( pWrite );
    } //delete out.dat
    remove( "out.dat" );
    rename( "out1.dat", "out.dat" );