文章目录 一、借助新建文件 二、文件指针定位覆盖 1. 得到待修改的数据在文件中的位置 2. 将文件内部指针定位到该位置 3. 写入新数据到文件 两种方法修改局部数据 一、借助新建文件 //已在内存中修改过单行数据后直接调用该函数 void RebuildFile ( List a ) //List为结构体指针,指针a指向已修改部分链表 { int num1 ; char name1 [ 100 ] ; double source ; FILE * p1 = fopen ( "...\\date.txt" , "r" ) ; FILE * p2 = fopen ( "...\\date2.txt" , "w+" ) ; //新建date2.txt while ( fscanf ( p1 , "%d%s%lf" , & num1 , name1 , & source ) == 3 ) { if ( strcmp ( a -> name , name1 ) ) //未修改部分直接存入 fprintf ( p2 , "%d %s %.2lf\n" , num1 , name1 , source ) ; else fprintf ( p2 , "%d %s %.2lf\n" , a -> num , a -> name , a -> source ) ; //修改后数据存入 }