有一个文件Test.tex,开始为:
AA BB CC DD EE FF
11 22 33 44 55 66
aa bb cc dd ee ff gg
新增一行(在后面新增)为:
AA BB CC DD EE FF
11 22 33 44 55 66
aa bb cc dd ee ff gg
23 44 cc DD ee 33 we
删除一行(在前面删除)为:
11 22 33 44 55 66
aa bb cc dd ee ff gg
23 44 cc DD ee 33 we
怎样做,在VC中有无现成的文件操作类,好像CStdioFile可以写入和读入一行
请各位最好给出源代码,谢谢!!

解决方案 »

  1.   

    没办法……这个只能全部读出,然后写回去……没有哪个操作系统提供了API可以直接删除文件不是在最后面的部分……
      

  2.   

    用数据库……那不是多加一次复制过程?给你个简单点的例子,过滤掉所有扩展的ASCII字符int ch;
    FILE* rfp, *wfp;
    rfp = fopen("readfile", "rb");
    wfp = fopen("writefile", "wb");
    while((ch = fgetc(rfp)) != EOF)
    {
      if (ch > 127)//check if the character is ASCII character
        continue;
      fputc(ch, wfp);
    }
    fclose(rfp);
    fclose(wfp);