C++中如何在一个文件开头输入文本

[复制链接]
查看11 | 回复3 | 2008-5-30 16:34:21 | 显示全部楼层 |阅读模式
要在一个文件开头就写入str,但不删除下面本来的文本内容,在写入前先指定了指针到文件开头,怎么没用,该怎么做呢?
fseek(fp,0,0);
fprintf(fp, "%s\n", str);
是用的添加模式,a,但是都添加到文件的最后面去了,我要添加在文件的最开头
fseek试了好几种,都无法改变添加在最后的情况

回复

使用道具 举报

千问 | 2008-5-30 16:34:21 | 显示全部楼层
还是用临时文件吧!这是个可行的方法,示例程序://---------------------------------------------------------------------------#include #define FILENAME "c:\\a.txt" /*需要插入内容的文件路径*/int main(void){ FILE *f=fopen(FILENAME,"rb+");/*打开需要插入内容的文件*/ FILE *tmpf=tmpfile();/*创建临时文件*/ char c,strin[80]; puts("input string:"); get
回复

使用道具 举报

千问 | 2008-5-30 16:34:21 | 显示全部楼层
a参数应该是追加到文件末尾,似乎没有直接的解决办法.可以新建立一个文件把前面的内容先写入,然后再导入以前的内容,删除不要的文件,再改名。太麻烦了。楼主可以查查seek来改变文件的位置指针,看看有没有好办法解决
回复

使用道具 举报

千问 | 2008-5-30 16:34:21 | 显示全部楼层
你可以打开一个新的文件,从头写入你想写的str内容。然后再读取原来的文件,读取数据,然后把数据写入到str这个文件内容的后面。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行