文件读入|数据结构

在这里插入图片描述

#include <stdio.h>
#include <conio.h>

#define MAX 35

typedef struct
{
	long stu_no;
	char name[10];
	int score;
}rectype;

void main()
{
	void read_file(rectype R[]);
	void print_data(rectype R[]);
	void write_file(rectype R[]);
	rectype R[MAX];
	read_file(R);
	print_data(R);
	write_file(R);
}
int n=0;
void read_file(rectype R[])
{
	
	FILE *fp1;
	int i;
	fp1=fopen(".\\data.txt","r");
	printf("Please input select numbers(n<=34):");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		fscanf(fp1,"%ld,%s,%d",&R[i].stu_no,R[i].name,&R[i].score);
	}
	fclose(fp1);
}

void print_data(rectype R[])
{
	int i;
	printf("\nSorted datas is:\n");
	printf("学号   姓名   成绩\n");
	for(i=1;i<=n;i++)
	{
		printf("%15ld%10s%5d\n",R[i].stu_no,R[i].name,R[i].score);
	}
}

void write_file(rectype R[])
{
	int i;
	FILE *fp2;
	if( (fp2=fopen(".\\new.txt","w")) == NULL)
	{
		fprintf(stderr,"文件new.txt关闭失败!\n");
		exit(1);
	}
	for(i=1;i<n;i++)
	{
		fprintf(fp2,"%ld,%s,%d\n",R[i].stu_no,R[i].name,R[i].score);
	}
	fclose(fp2);
}
#include "stdio.h"
#include "conio.h"

#define MAX  20

typedef struct
{      int  key;
       char name[9];
       int score;
} rectype;

int n;

void   INSERTSORT (rectype  R[ ])
{ int  i,j;
   for( i = 2; i <=n; i ++) 
        if (R[i].key <R[i-1].key )
         { R[0] = R[i];       
           for(j=i-1;  R[0].key< R[j].key;  j--)
                  R[j+1] = R[j];                  
             R[j+1] = R[0];     
           }
}


main()
{ rectype  R[MAX+1];
  int i;
  FILE *fp1,*fp2;

  fp1=fopen(".\\data.txt","r");
  fp2=fopen(".\\new.txt","w");
  printf("please input n(<=20):");
  scanf("%d",&n);

   for(i=1;i<=n;i++)
       fscanf(fp1,"%d %s %d",&R[i].key, R[i].name,&R[i].score);
   printf("The %d datas is :\n",n);
   for(i=1;i<=n;i++)
      printf("%5d%10s%5d\n",R[i].key, R[i].name,R[i].score);
   getch();

   INSERTSORT(R);
   printf("\nSorted datas is :\n");
   for(i=1;i<=n;i++)
      {printf("%5d%10s%5d\n",R[i].key, R[i].name,R[i].score);
       fprintf(fp2,"%5d%10s%5d\n",R[i].key, R[i].name,R[i].score);
      }
   
   fclose(fp1);
   fclose(fp2);
  getch();
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值