c语言从文件的头部,不覆盖写入

想用c语言实现字符串的翻转,其中原始字符串在f1.txt,输出结果到f2.txt。我使用1024个char的内存空间,然后用头插的方法写入新文件,实现翻转。但是每次使用f... 想用c语言实现字符串的翻转,其中原始字符串在f1.txt,输出结果到f2.txt。我使用1024个char的内存空间,然后用头插的方法写入新文件,实现翻转。但是每次使用fseek定位到文件头部之后就覆盖写入,请教大神解决办法!#include#include#define BUFFER_SIZE 10int main(int argc,char **argv){ char *buffer; FILE *f1,*f2; int read; int i = 0; buffer = malloc(BUFFER_SIZE); f1 = fopen("f1.txt","r"); f2 = fopen("f2.txt","r+"); while(!feof(f1)) { read = fread(buffer,sizeof(char),BUFFER_SIZE,f1); i = 0; while(i < read) { fwrite(&buffer[read - i -1],sizeof(char),1,f2); i++; } fseek(f2,0L,SEEK_SET); } fclose(f1); fclose(f2); free(buffer); return 1;} 展开
 我来答
cdyzxy
推荐于2016-08-14 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3774万
展开全部

文件头部插入很麻烦,有三种方法:

  1. 将f2.txt读出到内存;将f1.txt运算的结果写到f2.txt的头上,再续写f2.txt的原内容,注意打开f2.txt要用"rw"属性;

  2. 新键个f3.txt;将f1.txt运算的结果写入后,再读f2.txt写入,关闭f3.txt后将f2.txt删除,改f3.txt文件名为f2.txt。一般是这么做的。

  3. 最后一种避免改名,先打开f2.txt读,建立f3.txt,将f2.txt原样写入,然后f2.txt就可以从头覆盖写入f1.txt的处理结果,再读取f3.txt内容续写;最后删除f3.txt。

百度网友5c69cfc
2013-10-22 · TA获得超过238个赞
知道小有建树答主
回答量:325
采纳率:100%
帮助的人:228万
展开全部
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 2
int main(int argc,char **argv) { char *buffer;
FILE *f1,*f2;
int read;
int i = 0;
buffer = malloc(BUFFER_SIZE);
f1 = fopen("f1.txt","r");
f2 = fopen("f2.txt","w+");    // 使用创建模式 w+
while(!feof(f1)){
read = fread(buffer,sizeof(char),BUFFER_SIZE,f1);
i = 0;
while(i<read){
fwrite(&buffer[read-i-1],sizeof(char),1,f2);
i++;
}
fseek(f2,0,SEEK_END);    // 跳至文件末尾
}
fclose(f1);
fclose(f2);
free(buffer);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tpircsavaj
推荐于2016-09-26 · TA获得超过2759个赞
知道小有建树答主
回答量:1211
采纳率:0%
帮助的人:325万
展开全部
  1. 先保存文档(如txt)内容。

  2. 清空文档。

  3. 写入要写入的部分。

  4. 写入原文件内容。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿鸾44
2015-05-26 · TA获得超过2137个赞
知道大有可为答主
回答量:2141
采纳率:50%
帮助的人:556万
展开全部
看看,等一下再修改答案
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式