沉迷摸鱼无法自拔 2021-12-21 02:34 采纳率: 70.6%
浏览 174
已结题

请问这种错误如何修改

问题遇到的现象和发生背景

visual studio2017

int e()
{
    int i;
    FILE *fp;
    fp = fopen_s("chengji.txt", "w");

    fprintf(fp, "学号        姓名       平时成绩       实验成绩      考试成绩     总评成绩\n");

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

        fprintf(fp, "%d%14.2s%14.2f%14.2f%14.2f%14.2f\n", stu[i].num, stu[i].name, stu[i].pingshi, stu[i].shiyan, stu[i].kaoshi, stu[i].zongping);

    printf("\n\n*******************恭喜,保存完成!*******************\n\n");
}

问题相关代码,请勿粘贴截图

#include<stdio.h>
#include<string.h>
#include<math.h>
struct student
{
    int num;
    char name[20];
    float pingshi;
    float shiyan;
    float kaoshi;
    double zongping;
}stu[4];
int main()
{
    int a();
    int b();
    int c();
    int d();
    int e();
    int n;
    while (n != 6)
    {
        printf("\t大学计算机基础成绩管理系统\n");
        printf("1:输入一个班学生大学计算机基础成绩记录\n");
        printf("2:显示所有成绩记录\n");
        printf("3:计算并输出平均成绩,均方差\n");
        printf("4:输出成绩与排名\n");
        printf("5:结果存入文件chengji.txt\n");
        printf("6:退出系统\n");
        printf("输入选项代码:");
        scanf_s("%d", &n);
        switch (n)
        {
        case 1:a(); break;
        case 2:b(); break;
        case 3:c(); break;
        case 4:d(); break;
        case 5:e(); break;
        case 6:printf("\n*******************谢谢使用!*******************\n"); break;
            break;
        }
    }
    getchar();
}
/* 子  函  数*/
int a() /* 输入一个班的学生记录*/

{
    int i;

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

    {

        printf("请输入学号 姓名 平时成绩 实验成绩 考试成绩:");

        scanf_s("%d%s%f%f%f", &stu[i].num, stu[i].name, &stu[i].pingshi, &stu[i].shiyan, &stu[i].kaoshi);

    }for (i = 0; i < 4; i++)
        stu[i].zongping = 0.1*stu[i].pingshi + 0.3*stu[i].shiyan + 0.6*stu[i].kaoshi;
}
int b()/* 显示所有记录*/

{
    int i;

    printf("学号        姓名       平时成绩       实验成绩      考试成绩     总评成绩\n");

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

        printf("%d%14.2s%14.2f%14.2f%14.2f%14.2f\n", stu[i].num, stu[i].name, stu[i].pingshi, stu[i].shiyan, stu[i].kaoshi, stu[i].zongping);

}

int c()/* 求出全班平均成绩,显示均方差*/
{
    int a[4] = { 0,1,2,3 };
    int i, j;
    double total = 0, pfc = 0, bzc = 0;
    double ave;
    for (i = 0; i < 4; i++)
    {
        total = total + stu[i].zongping;
    }
    ave = total / 4.0;
    printf("总评平均成绩是%f\n", ave);
    for (i = 0; i < 4; i++)
    {
        pfc = pow((stu[i].zongping - ave), 2) / 4;
    }
    bzc = sqrt(pfc);
    printf("\n平方差是%f\n", pfc);
    printf("\n标准差是%f\n", bzc);
}
int d()

{
    int a[4] = { 0,1,2,3 };
    int i, j, temp;
    for (j = 0; j < 3; j++)
    {
        for (i = 0; i < 3 - j; i++)
            if (stu[a[i]].zongping > stu[a[i + 1]].zongping)
            {
                temp = a[i]; a[i] = a[i + 1];
                a[i + 1] = temp;

            }
    }

    printf("顺序为:\n");

    printf("学号     姓名      总评成绩\n");

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

        printf("%d%10.2s%15.2f\n", stu[a[i]].num, stu[a[i]].name, stu[a[i]].zongping);

    printf("\n");

}

int e()
{
    int i;
    FILE *fp;
    fp = fopen_s("chengji.txt", "w");

    fprintf(fp, "学号        姓名       平时成绩       实验成绩      考试成绩     总评成绩\n");

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

        fprintf(fp, "%d%14.2s%14.2f%14.2f%14.2f%14.2f\n", stu[i].num, stu[i].name, stu[i].pingshi, stu[i].shiyan, stu[i].kaoshi, stu[i].zongping);

    printf("\n\n*******************恭喜,保存完成!*******************\n\n");
}
运行结果及报错内容

严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0513 不能将 "errno_t" 类型的值分配到 "FILE *" 类型的实体
严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0167 "const char *" 类型的实参与 "FILE **" 类型的形参不兼容
严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0165 函数调用中的参数太少
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C4996 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

我的解答思路和尝试过的方法

fopen 改为fopen_s

我想要达到的结果

控制系统程序正常运行

  • 写回答

5条回答 默认 最新

  • togolife 2021-12-21 08:04
    关注
    获得0.45元问题酬金

    fopen_s(fp,"chengji.txt", "w");

    评论

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 创建了问题 12月21日

悬赏问题

  • ¥20 校园二手交易小程序搭建
  • ¥15 请问在ubuntu用conda创建环境报错怎么能解决
  • ¥15 STM32CubeMX/proteus按键控制指示灯颜色切换
  • ¥20 python,计算区位熵和扩张指数
  • ¥15 Python环境配置
  • ¥15 大四学生的困惑,有偿提问!
  • ¥15 解决页面无法编入索引:被“noindex”标签排除的问题?
  • ¥15 arduino测量电阻
  • ¥15 快手uid转快手号谁能解决 需要开发
  • ¥15 iis部署Django时css不生效,来个真人,ai不好使