⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 实验8.cpp

📁 普通指针运用文件操作
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
#define n 5
void main( )
{
    FILE *fp1; /*定义文件指针*/
    char *temp;
    int i;
    struct stu{ /* 定义学生记录结构*/
        char name[15];
        char num[6];
        float score[2];
    }student[n];
    if ((fp1=fopen("test.txt","wb"))==NULL) /*以二进制只写方式打开文件*/
    {
        printf("cannot open file");
        exit(0);
    }
    for( i=0;i<n;i++)
    {
        printf("input name:"); //输入姓名
        gets(student[i].name);
        printf("input num:");
        gets(student[i].num); //输入学号
        printf("input score1:");
        gets(temp); //输入一科成绩
        student[i].score[0]=atof(temp);
        printf("input score2:");
        gets(temp); // 输入第二科成绩
        student[i].score[1]=atof(temp);
        fwrite(&student[i],sizeof(struct stu),1,fp1); // 成块写入
    }
    fclose(fp1); //关闭
    if((fp1=fopen("test.txt","rb+"))==NULL)
    {   //以可读写方式打开文件
        printf("cannot open file");
        exit(0);
    }
    printf("---------------------\n");
    printf("%-15s%-7s%-7s%-7s\n","name","num","score1","score2");
    printf("---------------------\n");
    for (i=0;i<n;i++)
    { //显示全部文件内容
        fread(&student[i],sizeof(struct stu),1,fp1);
        printf("%-15s%-7s%7.2f%7.2f\n",student[i].name,student[i].num,student[i].score[0],student[i].score[1]);
    }
    //以下进行文件的随机读写
    fseek(fp1,3*sizeof(struct stu),0); //定位文件指针指向第三条记录
    fwrite(&student[1],sizeof(struct stu),1,fp1);
    // 在第三条记录处写入第二条记录
    rewind(fp1); //移动文件指针到文件头
    printf("---------------------\n");
    printf("%-15s%-7s%-7s%-7s\n","name","num","score1","score2");
    printf("---------------------\n");
    for (i=0;i<n;i++)
    { //重新输出文件内容
    fread(&student[i],sizeof(struct stu),1,fp1);
    printf("%-15s%-7s%7.2f%7.2f\n",student[i].name,student[i].num,student[i].score[0],student[i].score[1]);
    }
    fclose(fp1); //关闭文件
}
/*实验内容
 	有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。并打印出来。
设5名学生的学号、姓名和3门课成绩如下:
99101  	Wang  	89,98,67.5
99103  	Li     	60,80,90
99106  	Fun    	75.5,91.5,99
99110  	Ling  	100,50,62.5
99113  	Yuan  	58,68,7l
在向文件stud写入数据后,应检查验证stud文件中的内容是否正确。*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -