C语言 文件读写

Python018

C语言 文件读写,第1张

#include <stdio.h>

#include<string.h>

typedef struct

{

char a[20]

char b[20]

char c[20]

int  d

}node,*link

static int len

void insert()

{

FILE* fp

int num

fp=fopen("A.txt","w")

printf("输入记录个数:")

scanf("%d",&num)

len=num

while(num)

 link nlink=new node[sizeof(node)]

 printf("input a string:")

 scanf("%s",nlink->a)

 printf("input b string:")

 scanf("%s",nlink->b)

 printf("input c:string:")

 scanf("%s",nlink->c)

 printf("input d:int:")

 scanf("%d",&nlink->d)

 getchar()

 fwrite(nlink,sizeof(node),1,fp)

 num--

}

fclose(fp)

}

void show()

{

FILE* fp

fp=fopen("A.txt","r")

link abc=new node[sizeof(node)]

fread(abc,sizeof(node),1,fp)

int num=len

while(num)

{

printf("%s %s  %s %d\n",abc->a,abc->b,abc->c,abc->d)

fread(abc,sizeof(node),1,fp)

num--

}

fclose(fp)

}

void add()

{

FILE* fp

int offset=0

int flag=0

int sum=0

fp=fopen("A.txt","a+")

printf("输入添加记录:\n")

link nlink=new node[sizeof(node)]

printf("input a string:")

scanf("%s",nlink->a)

printf("input b string:")

scanf("%s",nlink->b)

printf("input c:string:")

scanf("%s",nlink->c)

printf("input d:int:")

scanf("%d",&nlink->d)

sum=nlink->d

//getchar()

int num=len

link abc=new node[sizeof(node)]

fread(abc,sizeof(node),1,fp)

while(num)

if (strcmp(nlink->a,abc->a)==0 && strcmp(nlink->b,abc->b)==0)

{

 flag=1

}

 fread(abc,sizeof(node),1,fp)

num--

}

if (flag==0)

{

len++

fwrite(nlink,sizeof(node),1,fp)

}

else

{

fclose(fp)

fp=fopen("A.txt","w+")

num=len

fread(abc,sizeof(node),1,fp)

while(num)

 if (strcmp(nlink->a,abc->a)==0 && strcmp(nlink->b,abc->b)==0)

 {

  abc->d+=nlink->d

    fwrite(abc,sizeof(node),1,fp)

 }

 fread(abc,sizeof(node),1,fp)

 num--

}

}

fclose(fp)

}

void main()

{

insert()

  show()

add()

show()

}

//---------------------------------------------------------------------------

#include <stdio.h>

struct pro

{float msl

float la,lo

double refractivity,density,pressure

float temp

}atm[200]

int main(void)

{

FILE *fp=fopen("infile.dat","r"),*fp2=NULL

int i

if (!fp||(fp2=fopen("out.txt","w"))==NULL) {

fprintf(stderr,"FILE ERROR")

return -1

}

for (i = 0i<200i++) {

/*从infile.dat文件读取数据*/

fscanf(fp,"%f%f%f%lf%lf%lf%f",&atm[i].msl,&atm[i].la,&atm[i].lo,&atm[i].refractivity,&atm[i].density,&atm[i].pressure,&atm[i].temp)

/*将数据写到out.txt文件*/

fprintf(fp,"%f\t%f\t%f\t%lf\t%lf\t%lf\t%f\n",atm[i].msl,atm[i].la,atm[i].lo,atm[i].refractivity,atm[i].density,atm[i].pressure,atm[i].temp)

}

fclose(fp)

fclose(fp2)

return 0

}

//---------------------------------------------------------------------------