c语言文件读写

用c语言怎么对文件进行修改,比如把某一行删掉或者替换。有懂的说下,谢谢

给你借鉴一下
#include<stdio.h>
#define n 3
void main()
{
int i;
FILE *fp;//文件指针

struct staff
{
long int num;
char name[20];
char sex;
char addr[20];
int IDnum;
int borndate;
}staffs[n];
for(i=0;i<n;i++)
{
printf("请输入员工编号");
scanf("%d",&staffs[i].num);
printf("\n请输入员工姓名");
scanf("%s",&staffs[i].name);
printf("\n请输入员工性别");
scanf("\n%c",&staffs[i].sex);//字符用%c匹配
printf("\n请输入员工身份证号");
scanf("%d",&staffs[i].IDnum);
printf("\n请输入员工出生日期");
scanf("%d",&staffs[i].borndate);
printf("\n请输入员工住址");
scanf("%s",&staffs[i].addr);
printf("\n");
//for(i=0;i<n;i++)多余
{printf("员工编号%d\n",staffs[i].num);
printf("员工姓名%s\n",staffs[i].name);
printf("员工性别%c\n",staffs[i].sex);
printf("员工身份证号%d\n",staffs[i].IDnum);
printf("员工出生日期%d\n",staffs[i].borndate);
printf("员工住址%s\n",staffs[i].addr);
}
}

fp=fopen("out.dat","wb");//在当前程序运行目录下自动建立out.dat文件,并用二进制写方式打开文件
if(fp==NULL)
{
printf("打开文件出错\n");
return ;
}
//用fread读取与fwrite匹配
if(fwrite(staffs,sizeof(staff),3,fp)!=3)//直接写入3个记录
{
printf("写文件出错\n");
return ;
}

fclose(fp);
printf("写入完毕!\n");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-20
我写过很多了

其实很简单 要修改 没过于两种办法

1 全部读入内存 修改好 全部写入文件

2 逐行读入 如果不是要修改的内容 直接写入临时文件

如果是修改内容 修改后写入临时文件

完成后 把源文件删除 临时文件拷贝过来 改名本回答被提问者采纳
第2个回答  2012-04-20
你可以看一下文件操作 fgets和fputs函数的使用