这是文件的修改操作
#include<stdio.h>
#include<string.h>
main() //定义一个数组
{
FILE *fin,*ftp;
char city1[20],city2[20],a[1000],del1[20],del2[20],last1[20],last2[20];
int weight,cost,times;
bool temp = false;
fin=fopen("123456.txt","r");//读打开原文件123.txt
ftp=fopen("tmp.txt","w");//写打开临时文件tmp.txt
scanf("%s %s",del1,del2);
fscanf(fin,"%s %s %d %d %d",city1,city2,&weight,&cost,×);//第一行的操作
if((strcmp(city1,del1)==0 && strcmp(city2,del2)==0) || (strcmp(city2,del1)==0 && strcmp(city1,del2)==0))
{
temp = true;
}
if(!temp)
{
fprintf(ftp,"%s %s %d %d %d",city1,city2,weight,cost,times);
fputc('\n',ftp);
}
else
temp = false;
while(fgets(a,1000,fin))
{
fscanf(fin,"%s %s %d %d %d",city1,city2,&weight,&cost,×);
if((strcmp(city1,del1)==0 && strcmp(city2,del2)==0) || (strcmp(city2,del1)==0 && strcmp(city1,del2)==0))
{
temp = true;
}
if(strcmp(city1,last1)==0 && strcmp(city2,last2)==0)
{
temp = true;
}
if(!temp)
{
strcpy(last1,city1);
strcpy(last2,city2);
fprintf(ftp,"%s %s %d %d %d",city1,city2,weight,cost,times);
fputc('\n',ftp);
}
else
temp = false;
}
fclose(fin);
fclose(ftp);
remove("123456.txt");//删除原文件
rename("tmp.txt","123456.txt");//将临时文件名改为原文件名
return 0;
}
remove函数调用失败时会返回-1,成功返回0;