『壹』 怎么用c语言修改文件内容

提供思路:
先一组一组数据读取,然后进行比较,看是不是你要修改的数据(如果是你要修改的数据,那此时文件的指针已经指向下一组数据了),然后用fseek(fp,-sizeof(type),seek_cur);使文件指针指向该数据块(fp为文件指针,sizeof(type)为数据长度,type是我指定,你可以换成你需要的数据类型,比如int或是struct等)
如果你知道数据是第几组就更好了,直接用fseek(fp,(n-1)*sizeof(type),seek_set);就能找到位置了
用前面两种方法的前提是,你存入数据的时候用的都是以数据块的方式写入的同一种数据(比如只用fwrite()函数写入的struct类型数据),如果用的是复合方式写入,比如用了fwrite()、fputc()、fprintf(),这样的话,定位就有问题了。

『贰』 C语言如何打开一个文件然后修改保存

假定开始没有这个文件,在插入数据时建立文件。
FILE *fp;
fopen("c:\\a.txt","wt+");这个是打开以写或读的方式打开文件。打开后就可以写入了,用for循环,例如你有4组数据,
for(int i;i<=4;i++)
{
fprintf(fp,"%s%s%s%s",a,b,c,d);
}
fprintf();就实现了把数据写入文件的功能。跟printf();差不多,只是一个是往文件里写,一个是往屏幕上写。
上面就实现了插入操作。
如果你想删除一个数据,就先在数组中删除,然后重新进行上述写入文件操作。 要是读取数据的话就在打开文件时:fp = fopen("c:\\a.txt",r+);
要是还不明白的话就看下书,这两个函数就可以满足你的需要。

『叁』 c语言修改文件

// crt_fgets.c
// This program uses fgets to display
// a line from a file on the screen.
//

#include <stdio.h>

int main( void )
{
FILE *stream;
char line[100];

if( fopen_s( &stream, "crt_fgets.txt", "r" ) == 0 )
{
if( fgets( line, 100, stream ) == NULL)
printf( "fgets error\n" );
else
printf( "%s", line);
fclose( stream );
}
}

『肆』 C语言怎么修改文件信息

把文件里面数据读出来,在内存里面改掉,再把改后的数据写回去
c操作文件没有修改的方式,只有追加,不过也不适合你的需最常用的就是这样,先读,改 再重写

『伍』 c语言从文件读取参数并修改

//c语言从读取并修改,参考实例如下:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define FM "%s %s %s"
#define FMT "%s %s %s\n"
#define DT t.no,t.name,t.other
struct
{ char no[20]; //学号
char name[20]; //姓名
char other[20]; //其它
}stu[50],t; //t为临时变量

void add()
{
FILE *fp;
fp=fopen("data.txt","a+"); //追加
printf("Input NO,Name,Other:\n");
scanf(FM,DT);
fprintf(fp,FMT,DT);
fclose(fp);
}

void show()
{
FILE *fp;
fp=fopen("data.txt","r");
if(fp==NULL)exit(1); //异常处理
while(1)
{
fscanf(fp,FM,DT);
if(fgetc(fp)==EOF)break; //遇文件结束符
printf(FMT,DT);
}
fclose(fp);
}
void find()
{
FILE *fp;
char str[20];
int flag=0; //记录是否存在要查找的学生
fp=fopen("data.txt","r");
if(fp==NULL)exit(1);
printf("Input NO:");
scanf("%s",str); //输入要查找的学号
while(1)
{
fscanf(fp,FM,DT);
if(fgetc(fp)==EOF)
{
if(flag==0) printf("no this student!\n"); //文件读取结束还没找到该学生
break;
}
if(strcmp(str,t.no)==0) //学号匹配
{
printf(FMT,DT); //输出
flag=1;
}
}
fclose(fp);
}
void del(int n)
{
FILE *fp;
char str[20],name1[20],other1[20];
int i;
fp=fopen("data.txt","r");
if(fp==NULL)exit(1);
printf("Input NO:");
scanf("%s",str); //输入学号
for(i=0;i<50;i++) fscanf(fp,FMT,stu[i].no,stu[i].name,stu[i].other); //读取全部信息
fclose(fp);
fp=fopen("data.txt","w");
for(i=0;i<50;i++)
{
if(strcmp(str,stu[i].no)!=0) //学号匹配
fprintf(fp,FMT,stu[i].no,stu[i].name,stu[i].other); //原样写回
else
{
printf(FMT,stu[i].no,stu[i].name,stu[i].other); //输出修改或删除的信息
if(n==0) //修改
{
printf("Input the Name:");scanf(" %s",name1); //修改名字
printf("Input other:");scanf(" %s",other1); //修改其它
fprintf(fp,FMT,str,name1,other1); //写入修改信息
}
}
}
fclose(fp);
}
void menu()
{
char ch;
printf("\n=====================\n");
printf("== 1.Add 2.Show ==\n== 3.Del 4.Revise ==\n== 5.Find 0.Exit ==");
printf("\n=====================\n");
printf("Choice:");
ch=getche();printf("\n");//scanf(" %c",&ch);
switch(ch)
{
case '1':add();break; //添加
case '2':show();break; //显示
case '3':del(1);break; //删除
case '4':del(0);break; //修改
case '5':find();break; //查找
case '0':exit(0); //退出
default:printf("Input error!\n");break;
}
}

int main()
{
while(1){system("cls");menu();getchar();}//system("pause");
return 0;
}

『陆』 c语言 修改文件

/*大写字母转换成小写*/
char Lower(char Upper)
{
if(Upper<=122&&Upper>=97)
Upper-=32;
return Upper;
}

完整专:属
#include<stdio.h>
char Lower(char Upper)
{
if(Upper<=122&&Upper>=97)
Upper-=32;
return Upper;
}

void main()
{
FILE fp1,fp2;
char p;
fp1=open("C:\\config.ini");
fp2=open("D:\\config.ini","w");
while(!p)
fprintf(fp1,Lower(p),"w");
fclose(fp1);
fclose(fp2);
}

『柒』 C语言怎么修改文件内容

不好意思
目前我只会修改2进制文件
以''r+t"形式打开
fseek()定位文件指针到你要修改的位置
fwrite()直接放进你的数据
完成修改
对于文本文件我没办法
郁闷