请问如何在文件中往前面写数据,万分感谢
我有如下程序
....
fpos_t pos=0;;
FILE *fp;
if((fp=fopen(".\t2.htm","a+"))==NULL){
fp = fopen(".\t2.htm","w");
}
rewind(fp);
fseek(fp,0L,SEEK_SET);
fsetpos(fp,&pos);
.....
我用了以上方法将文件指针定位到头
可是我再用fprintf方法向文件写数据时,确没有办法写在前面,
只能在文件的后面添加
问题点数:20、回复次数:4Top
1 楼zhq2000(方舟)回复于 2000-11-16 01:43:00 得分 5
文件操作就是这样的。
试试这个:
1.把t2.htm改名t2tmp.htm
2.创建一名为t2.htm的文件
3.写入新数据
4.打开t2tmp.htm
5.读t2tmp.htm的内容,写进t2.thm
6.关闭 t2tmp.htm 及 t2.htm
7.删除t2tmp.htm
8.如再要加入新数据,重复1--7Top
2 楼hotyei(出于蓝胜于蓝)回复于 2000-11-16 08:42:00 得分 5
首先,你的打开文件名好像不太正确,因为\符号在C中用\\的。第二,打开属性a已经可以创建文件的了,你下面再加个w就画蛇添足了。回到正确,你可以通过下面的方法做到,下面假设你的文件不太大。
1)计算出你要(添加的数据+原文件大小)。
2)用alloc函数(可能记错了,我太久没用DOS了)分配一段同样大小的内存。
3)将添加的数据以及原文件的内容写到这段内容中
4)将内容写入文件
5)关闭文件并结束Top
3 楼bobqi(灰冷)回复于 2000-11-16 09:02:00 得分 5
To hotyei & zhq2000
thanx a lots
因为我主要是在一个CGI程序中进行文件操作,
hotyei说的\符号我是用\\的,编译运行都很正常。
因为程序不是从我那粘贴过来的,是手误。
由于数据量的不断增大,所以不行。Top
4 楼george77(F22)回复于 2000-11-16 10:02:00 得分 5
先将文件中的内容读到string1中,再生成一个空间足够大的string2,将你要写的新内容和string1都放到string2中,再将string2写入文件。Top




