关闭

C语言练习

标签: 语言fpcoutputnullfile
244人阅读 评论(0) 收藏 举报
分类:

练习1:

#include "stdlib.h"

#include "iostream.h"

#include "stdio.h"

void main()

{FILE *fp1,*fp2;

char ch,f1[10],f2[10];

cout<<"输入文件1的文件名:";

cin>>f1;

if((fp1=fopen(f1,"w+"))==NULL)

{printf("cannot open file\n");

exit(0);}

cout<<"输入文件1的数据内容(以‘#’结束)"<<endl;

ch=getchar();

while(ch!='#')

{fputc(ch,fp1);

ch=getchar();

}

Cout<<"输入文件2的文件名: ";

scanf("%s",b);

if((fp2=fopen(b,"w+"))==NULL)

{

printf("Cannot open file.");

exit(0);

}

rewind(fp1);

while(!feof(fp1))

fputc(fgetc(fp1),fp2);

printf("\n输出文件1:");

rewind(fp1);

while(!feof(fp1))

putchar(fgetc(fp1));

printf("\n输出文件2:");

rewind(fp2);

while(!feof(fp2))

putchar(fgetc(fp2));

printf("\n");

fclose(fp1);

fclose(fp2);

}

}

 

练习2:

#include "stdlib.h"

#include "iostream.h"

#include "stdio.h"

#define FORMAT "%d %s %d %d %d "

#define N 5

struct student

{

       intnum;

       charname[20];

       intscore[3];

}stu[N];

 

void input(char a[])             // a用于接收要写入数据的文件名

{

       inti;

       FILE*fp;

       if((fp=fopen(a,"w"))==NULL)

       {

              printf("Cannotopen file.");

              exit(0);

       }

       cout<<"输入学生的数据:"<<endl;

       for(i=0;i<N;i++)

       {

              scanf(FORMAT,&stu[i].num,stu[i].name,&stu[i].score);

              fprintf(fp,FORMAT,stu[i].num,stu[i].name,stu[i].score);

       }

       fclose(fp);

}

 

void output(char a[],int sn)      // sn用于接收要输出文件中的学生人数

{

 

       inti;

       FILE*fp;

       if((fp=fopen(a,"r"))==NULL)

       {

              printf("Cannotopen file.");

              exit(0);

       }

       cout<<endl<<"输出学生的数据:"<<endl;

       for(i=0;i<sn;i++)

       {

              fscanf(fp,FORMAT,&stu[i].num,stu[i].name,&stu[i].score);

              printf(FORMAT,stu[i].num,stu[i].name,stu[i].score);

              printf("\n");

       }

       fclose(fp);

}

 

int select(char a[],char b[])      // 函数返回值为挑选出来的学生人数

{

       intn,y,z,i;

       cout<<"输入课程号〈1—3〉:";

       cin>>n;

   cout<<endl<<"输入分数段<XX-YY>:";

       cin>>y>>z;

       cout<<y<<z;

       for(i=0;i<5;i++)

       if(stu[i].score[n]>y&&stu[i].score[n]<z)

       returni;

}

 

void main()

{

   int sn;

       input("stu.txt");

       output("stu.txt",N);

       sn=select("stu.txt","range.txt");

       output("range.txt",sn);

 

}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:27645次
    • 积分:848
    • 等级:
    • 排名:千里之外
    • 原创:63篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章存档
    最新评论