易截截图软件、单文件、免安装、纯绿色、仅160KB

用c/c++定位删除一行的问题

用c/c++定位删除一行的问题。

问题背景:

所需数据相当大。a与b文件均为一组文件(a1,a2…,b1,b2…),a文件有最大数据行数(如5000),以行的形式,从a文件中读取数据,将a中不能处理的数据放在b文件中,然后单独对b。
b文件中依旧对数据进行处理,如果已经处理成功,则将该条(该行)数据删除,如果失败则继续保留该数据。
问题情况:
在没有动手编的时候,觉得是个很容易的问题,但是后来发现,c/c++提供的函数,并没有指定删除一行数据的库函数。
网上说了一些方法如先定位在要删除的数据位置,然后将后面的数据覆盖在这个位置。
这样做有3个问题:
一是,seekp()函数可以定位,然后用f.write(s, strlen(s));但是具体要怎样将后面的数据保存并写到这个位置呢? 后面的数据可能有几千行,而且是有‘\n‘的字符的。
二是,如有10条数据,那么这时候要将第二条删除,那么就将第三条往后的7条数据,都覆盖过来,那么之前的最后一条,即第十条数据并没有什么来给它覆盖了?那要怎么去掉原来的第十条?
三是,这样做它的速度问题呢?几千行每处理成功一次,就要将数据整体往前挪,频繁做这个动作效率肯定不高。

那么有没有其他的好方法呢??


另外,还有一条路,就是用数据库代替这个功能,
那么还会有下面的考虑:
一是数据库也存在保存成功和失败的问题;
二是频繁操作数据库会不会更没有效率呢?(与频繁操作文件读取相比)

请大家看一下吧。。不能发很多分不知道为什么。不好意思了
困扰我很久了。
可以用 MFC 里面的 CStdioFile
用 ReadString 将数据一行一行的读进来,如果无法处理,将该行字符串放入一个 CStri


相关问答:

两个C文件的问题

以前在VC里面建一个工程,都只用一个 .c 文件,昨天在一个工程里用了两个 .c文件了,遇到问题了,请大家指点。比如:
File1.c Fil ......

C 程序问题 (二) - C/C++ / C语言

问一下:
#include <stdio.h>
int main()
{
  char x, y, z;
  int i;
  int a[16];
  for(i=0; i<=16; i++)
  {
  a[i] = 0;
  ......

c中的转义字符问题

    '\108'作为字符常量对不对?
转义字符'\ddd'表示3位8进制所代表的字符。 但是108不是正确的8进制表示方法,因此应该是错误的。
但是char a='\108'; 为什么编译不出错呢?
\108 没超过 ......

用C或C++如何编写求解3D魔方程序 - C/C++ / C++ 语言

请问用C或C++如何编写求解3D魔方的程序,该从何开始?
谢谢各位,帮忙提点建议吧。

http://www.mofang.net/code/176/182/6581.html

我只能突破60秒!唉。

我刚过40秒

google的android中有个OpenGL ES + ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号