头歌平台——C文件操作

news2024/11/19 11:26:33

第1关:使用FILE结构操作文本文件

任务描述

本关要求编写函数ext\fractDigit,该函数从已有的当前目录下的文件a.txt中读取并解析出其中的数值,并将结果写到当前目录下的文件b.txt中。

其中:文件a.txt中包含各种字符,但只有数字字符是有效的,提取其中的数字字符,将每3个数字组成一个整数,写到文件b.txt中,每个整数之间用一个空格分开。读取过程中,如果a.txt中最后剩下不到3个数字字符,则将剩下的1个或者2个数字字符组成一个整数。

例如:a.txt中的内容是1j3j5sd0msd454ss3msd563,则抽取出来写入文件b.txt的内容应该是135 45 435 63(第二个整数是由045三个数字组成,所以是45)。

相关知识(略)
编程要求

本关的编程任务是补全step1/fileTxt.c文件中ext\fractDigit函数,以实现使用FILE结构来操作文本文件的要求。具体要求如下:

  • 本关要求通过补全step1/fileTxt.c文件中ext\fractDigit函数来实现从已有的当前目录下的文件a.txt中读取并解析出其中的数值,并将结果写到当前目录下的文件b.txt中的要求。

  • 实际的测试样例参见下文。

测试说明

本关的测试文件是step1/main.c,其中将会调用你在step1/fileTxt.c文件中完成的ext\fractDigit函数来完成本关任务。step1/main.c的源代码如下所示:

 
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. //声明外部函数,函数ext\fractDigit在其它源文件中实现
  4. extern void ext\fractDigit();
  5. int main()
  6. {
  7. //准备文件a.txt的内容
  8. FILE *fp = fopen("a.txt","w"); //打开文件a.txt用于写
  9. char s[1000];
  10. fgets(s, 999, stdin); //从键盘读取一行字符
  11. fputs(s,fp); //将这一行字符写入文件a.txt中
  12. fclose(fp); //关闭fp关联的文件a.txt
  13. ext\fractDigit(); //调用函数,抽取数字写入文件b.txt中
  14. FILE *f = fopen("b.txt","r"); //以读的方式打开文件b.txt
  15. if(f==NULL) //打开失败则返回
  16. return 0;
  17. int n,k=0;
  18. fscanf(f,"%d",&n); //从文件b.txt中读出一个整数到变量n中
  19. while(!feof(f)) //如果文件没结束(读出的不是EOF)
  20. {
  21. k++;
  22. printf("%d ",n); //输出该整数到屏幕
  23. if(k%10==0) //每十组一换行
  24. printf("\n");
  25. fscanf(f,"%d",&n); //读取下一个整数
  26. }
  27. if(k%10!=10) //最后一行没有换行符则补上
  28. printf("\n");
  29. return 0;
  30. }

平台会对你编写的代码进行测试: 测试输入: q12h44h67k854ksd923823sf83wd38457sd433ds, 预期输出: 124 467 854 923 823 833 845 743 3

测试输入: 1212121212343434343445454545450000005656565665dfsd455 预期输出: 121 212 121 234 343 434 344 545 454 545 0 0 565 656 566 545 5

#include <stdio.h>

// 函数extractDigit的功能:从文件a.txt中提取数值写入文件b.txt中
void extractDigit();

// 请在此添加代码,实现extractDigit函数
// 函数extractDigit的功能:从文件a.txt中提取数值写入文件b.txt中
void extractDigit()
{
    FILE *fi = fopen("a.txt","r");  // 以读的方式打开文件a.txt
    FILE *fo = fopen("b.txt","w");  // 以写的方式打开文件b.txt
    if(fi==NULL || fo==NULL)  // 如果某个文件打开失败,则返回
        return;
    /**************Begin******************/
 char readADigit(FILE *fi)// 从文件读取一个字符
{
        char c = fgetc(fi);
        if(c==EOF)
        {
            return EOF;
        }
        while(c>'9' || c<'0')// 如果不是数字字符,则继续读取下一个字符
        {
            c = fgetc(fi);
            if(c==EOF)
            {
                return EOF;
            }
        }
        return c;
    }
    char c;
    int num=0,k=0;
    c = readADigit(fi);// 从文件读取一个字符
    while(c!=EOF)
    {
        num=num*10+c-'0';// 计算数字字符构成的整数
        k++;
        if(k==3)
        {
            fprintf(fo,"%d ",num);
            k=0;
            num=0;
        }
        c = readADigit(fi);
    }
    if(k!=0)// 如果有不到三位的数值,则写入文件b.txt
    {
        fprintf(fo,"%d ",num);
    }
    /**************End********************/
    fclose(fi);  // 关闭文件fi
    fclose(fo);  // 关闭文件fo
}

第2关:按格式读写文件存取学生信息

任务描述

本关要求编写函数ReadStudInfoSaveResult

相关知识(略)
编程要求

本关的编程任务是补全step2/fileTxt.c文件中ReadStudInfo函数和SaveResult函数,以实现按格式使用FILE结构存取学生信息的功能。具体要求如下: 1.ReadStudInfo函数功能:实现从文本文件中读取学生的基本信息。函数ReadStudInfo函数原型为:

void ReadStudInfo(const char *fileName, STUDENT stud[]);

其中:

  • 参数fileName是一个文本文件,位于当前目录,即与源程序文件在同一文件夹下。文件中首先是以字符形式写入的学生人数(整数n,不超过30)和课程数量(整数n,不超过5),然后是n个学生的信息,学生信息在结构STUDENT中定义:
     
      
    1. struct student
    2. {
    3. long studentID;
    4. char studentName[20];
    5. char sex[4];
    6. struct{
    7. int year;
    8. int month;
    9. int day;
    10. }birthday;
    11. float score[COURSE_MAXNUM];
    12. float total;
    13. float average;
    14. int rank;
    15. };
    16. typedef struct student STUDENT;
  • 文件中没有存储 total,average,rank 三项信息。
  • 函数ReadStudInfo的第二个参数stud存放读取出来的学生信息。

2.SaveResult函数功能:实现从文本文件中读取学生的基本信息。函数SaveResult函数原型为:

void SaveResult(const char *fileName, STUDENT stud[],int n,int m);

其中:

  • 参数fileName是一个文本文件,位于当前目录,即与源程序文件在同一文件夹下。
  • 文件中首先要求以字符形式写入学生人数(整数n,不超过30)和课程数量(整数n,不超过5),然后是n个学生的信息。n个学生的信息存放在第二个参数stud开始的n个结构体数据单元中。
  • 每个学生的信息包括学号、姓名、性别、出生日期,若干门课程的成绩、总分、平均分、名次。
测试说明

本关的测试文件是step2/main.c,其中将会调用你在step2/fileTxt.c文件中完成的ReadStudInfo函数和SaveResult函数。除此之后,step2/main.c中还对学生信息进行了处理:包括计算总分、平均分和名次。其次还实现了输入测试数据、输出测试结果、写入测试文件(student.txt)、读取测试文件(result.txt):

1.调用函数Input()将标准输入的数据读入内存,然后调用SaveStudInfo()函数将数据再写入到student.txt文本文件,以便为**ReadStudInfo()**函数从文本文件读取学生信息准备测试数据。

2.调用函数ReadResult()SaveResult()函数保存的result.txt中的学生信息读入内存,并调用Print()函数进行输出。**SaveResult()**函数需要将计算出总分、平均分和名次信息的学生信息存入result.txt

3.student.txt的示例如下:

4.result.txt的示例如下:

5.step2/main.c主要代码如下:

 
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define COURSE_MAXNUM 5
  4. //声明结构STUDENT
  5. struct student
  6. {
  7. long studentID;
  8. char studentName[20];
  9. char sex[4];
  10. struct{
  11. int year;
  12. int month;
  13. int day;
  14. }birthday;
  15. float score[COURSE_MAXNUM];
  16. float total;
  17. float average;
  18. int rank;
  19. };
  20. typedef struct student STUDENT;
  21. //声明外部函数,函数在其它源文件中实现
  22. extern void ReadStudInfo(const char *fileName, STUDENT stud[]);
  23. extern void SaveResult(const char *fileName, STUDENT stud[],int n,int m);
  24. //声明本文件中的其它函数
  25. void Input(STUDENT *stud, int n,int m);
  26. void Print(STUDENT *stud, int n,int m);
  27. void TotalAndAverage(STUDENT *stud, int n,int m);
  28. void RankByTotal(STUDENT *stud, int n,int m);
  29. void SaveStudInfo(const char *fileName,STUDENT *stud,int n,int m);
  30. void ReadResult(const char *fileName,STUDENT *stud);
  31. int main()
  32. {
  33. int n,m; //n用于存放学生人数,m用于存放课程门数。
  34. STUDENT *stud; //指向存放学生信息的存储块的首地址
  35. scanf("%d%d",&n,&m); //输入学生总人数
  36. // 动态分配存储
  37. stud = (STUDENT *)malloc(n*sizeof(STUDENT));
  38. Input(stud,n,m);//输入学生信息
  39. //将测试输入信息写入文件
  40. SaveStudInfo("student.txt",stud,n,m);
  41. free(stud);
  42. //打开文件student.txt,以文本文件方式打开用于读
  43. //从文件中读取学生信息到数组stud中
  44. stud = (STUDENT *)malloc(n*sizeof(STUDENT));
  45. ReadStudInfo("student.txt",stud);
  46. // 计算总分
  47. TotalAndAverage(stud,n,m);
  48. // 计算排名
  49. RankByTotal(stud,n,m);
  50. //打开文件result.txt,以文本文件方式打开用于写
  51. //将计算出了总分和平均分以及名次的学生信息写入文件
  52. SaveResult("result.txt",stud,n,m);
  53. free(stud);
  54. //打开文件result.txt,以文本文件方式打开用于读
  55. //从文件中读取学生信息到数组stud中,用于测试是否与预期输出一致
  56. stud = (STUDENT *)malloc(n*sizeof(STUDENT));
  57. ReadResult("result.txt",stud);
  58. //输出学生信息
  59. Print(stud,n,m);
  60. free(stud);
  61. return 0;
  62. }

平台会对你编写的代码进行测试: 测试样例:

#include <stdio.h>
#include <stdlib.h>
#define COURSE_MAXNUM 5
//声明结构STUDENT
struct student
{
    long studentID;
    char studentName[20];
    char sex[4];
    struct{
        int year;
        int month;
        int day;
    }birthday;
    float score[COURSE_MAXNUM];
    float total;
    float average;
    int rank;
};
typedef struct student STUDENT;

//从文件fileName表示的文本文件中读取学生基本信息,
//包括学号、姓名、性别、出生日期,若干门课程的成绩
//文件的第一行存储的信息包含了n和m,即学生的人数和课程门数
void ReadStudInfo(const char *fileName, STUDENT stud[])
{
/***********Begin*****************/
FILE *fp = fopen(fileName,"r");  //打开文本文件student.txt用于读
    if(fp == NULL)
    {
        printf("Failure to open %s!\n",fileName);
        exit(0);
    }
    int n,m;
    fscanf(fp,"%d%d",&m,&n);
    for(int i=0;i<n;i++)
    {
        fscanf(fp,"%ld",&stud[i].studentID);
        fscanf(fp,"%s",stud[i].studentName);
        fscanf(fp,"%s",stud[i].sex);
        fscanf(fp,"%d-%d-%d",&stud[i].birthday.year,&stud[i].birthday.month,&stud[i].birthday.day);
        for(int j=0;j<m;j++)
            fscanf(fp,"%f",&stud[i].score[j]);
    }
    fclose(fp);//关闭文件


/***********End*******************/
}

//向文件fileName表示的文本文件中写入学生基本信息,
//包括学号、姓名、性别、出生日期,若干门课程的成绩、总分、平均分、名次
//文件的第一行存储的信息应该包括n和m,即学生的人数和课程门数
void SaveResult(const char *fileName, STUDENT stud[],int n,int m)
{
/***********Begin*****************/
 FILE *fp = fopen(fileName,"w");  //打开文本文件result.txt用于写
    if(fp == NULL)
    {
        printf("Failure to open %s!\n",fileName);
        exit(0);
    }
    fprintf(fp,"%d %d",n,m);//将n,m写入文件

    for(int i=0;i<n;i++)
    {
        fprintf(fp,"\n%-12ld\t",stud[i].studentID);
        fprintf(fp,"%-12s\t",stud[i].studentName);
        fprintf(fp,"%-4s\t",stud[i].sex);
        fprintf(fp,"%4d-%02d-%02d\t",stud[i].birthday.year,stud[i].birthday.month,stud[i].birthday.day);
        for(int j=0;j<m;j++)
            fprintf(fp,"%.0f\t",stud[i].score[j]);
        fprintf(fp,"%.0f\t",stud[i].total);
        fprintf(fp,"%.0f\t",stud[i].average);
        fprintf(fp,"%d",stud[i].rank);
    }
    fclose(fp); //关闭文件


/***********End*******************/
}

 第3关:按数据块读写文件存取学生信息

任务描述

本关任务与第2关任务相似。

相关知识(略)
编程要求

本关的编程任务是补全step2/fileBin.c文件中ReadStudInfo函数和SaveResult函数,以实现按数据块使用FILE结构存取学生信息的功能。具体要求如下:

1.ReadStudInfo函数功能:实现从二进制文件中读取学生的基本信息。函数ReadStudInfo函数原型为:

void ReadStudInfo(const char *fileName, STUDENT stud[]);

其中:

  • 参数fileName是一个二进制格式的文件,位于当前目录,即与源程序文件在同一文件夹下。文件中首先是以二进制数据形式写入的学生人数(整数n,不超过30)和课程数量(整数n,不超过5),然后是n个学生的信息,学生信息在结构STUDENT中定义:
     
      
    1. struct student
    2. {
    3. long studentID;
    4. char studentName[20];
    5. char sex[4];
    6. struct{
    7. int year;
    8. int month;
    9. int day;
    10. }birthday;
    11. float score[COURSE_MAXNUM];
    12. float total;
    13. float average;
    14. int rank;
    15. };
    16. typedef struct student STUDENT;
  • 文件中存储了 total,average,rank 三项信息,但均为初始值0。
  • 函数ReadStudInfo的第二个参数stud存放读取出来的学生信息。

2.SaveResult函数功能:实现从二进制格式文件中读取学生的基本信息。函数SaveResult函数原型为:

void SaveResult(const char *fileName, STUDENT stud[],int n,int m);

其中:

  • 参数fileName是一个二进制格式文件,位于当前目录,即与源程序文件在同一文件夹下。
  • 文件中首先要求以二进制形式写入学生人数(整数n,不超过30)和课程数量(整数n,不超过5),然后是n个学生的信息。n个学生的信息存放在第二个参数stud开始的n个结构体数据单元中。
  • 每个学生的信息包括学号、姓名、性别、出生日期,若干门课程的成绩、总分、平均分、名次。
测试说明

本关的测试文件是step3/main.c,其中将会调用你在step3/fileBin.c文件中完成的ReadStudInfo函数和SaveResult函数。除此之后,step3/main.c中还对学生信息进行了处理:包括计算总分、平均分和名次。其次还实现了输入测试数据、输出测试结果、写入测试文件(student.dat)、读取测试文件(result.dat):

1.调用函数Input()将标准输入的数据读入内存,然后调用SaveStudInfo()函数将数据再写入到student.dat文本文件,以便为**ReadStudInfo()**函数从文本文件读取学生信息准备测试数据。

2.调用函数ReadResult()SaveResult()函数保存的result.dat中的学生信息读入内存,并调用Print()函数进行输出。**SaveResult()**函数需要将计算出总分、平均分和名次信息的学生信息存入result.dat

3.student.dat的示例如下:

4.result.dat的示例如下:

5.step3/main.c主要代码如下:

 
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define COURSE_MAXNUM 5
  4. //声明结构STUDENT
  5. struct student
  6. {
  7. long studentID;
  8. char studentName[20];
  9. char sex[4];
  10. struct{
  11. int year;
  12. int month;
  13. int day;
  14. }birthday;
  15. float score[COURSE_MAXNUM];
  16. float total;
  17. float average;
  18. int rank;
  19. };
  20. typedef struct student STUDENT;
  21. //声明外部函数,函数在其它源文件中实现
  22. extern void ReadStudInfo(const char *fileName, STUDENT stud[]);
  23. extern void SaveResult(const char *fileName, STUDENT stud[],int n,int m);
  24. //声明本文件中的其它函数
  25. void Input(STUDENT *stud, int n,int m);
  26. void Print(STUDENT *stud, int n,int m);
  27. void TotalAndAverage(STUDENT *stud, int n,int m);
  28. void RankByTotal(STUDENT *stud, int n,int m);
  29. void SaveStudInfo(const char *fileName,STUDENT *stud,int n,int m);
  30. void ReadResult(const char *fileName,STUDENT *stud);
  31. int main()
  32. {
  33. int n,m; //n用于存放学生人数,m用于存放课程门数。
  34. STUDENT *stud; //指向存放学生信息的存储块的首地址
  35. scanf("%d%d",&n,&m); //输入学生总人数
  36. // 动态分配存储
  37. stud = (STUDENT *)malloc(n*sizeof(STUDENT));
  38. Input(stud,n,m);//输入学生信息
  39. //将测试输入信息写入二进制文件
  40. SaveStudInfo("student.dat",stud,n,m);
  41. free(stud);
  42. //打开文件student.dat,以二进制文件方式打开用于读
  43. //从文件中读取学生信息到数组stud中
  44. stud = (STUDENT *)malloc(n*sizeof(STUDENT));
  45. ReadStudInfo("student.dat",stud);//位于fileBin.c文件中
  46. // 计算总分
  47. TotalAndAverage(stud,n,m);
  48. // 计算排名
  49. RankByTotal(stud,n,m);
  50. //打开文件result.dat,以二进制文件方式打开用于写
  51. //将计算出了总分和平均分以及名次的学生信息写入文件
  52. SaveResult("result.dat",stud,n,m);//位于fileBin.c文件中
  53. free(stud);
  54. //打开文件result.dat,以二进制文件方式打开用于读
  55. //从文件中读取学生信息到数组stud中,用于测试是否与预期输出一致
  56. stud = (STUDENT *)malloc(n*sizeof(STUDENT));
  57. ReadResult("result.dat",stud);
  58. //输出学生信息
  59. Print(stud,n,m);
  60. //释放动态申请的存储块
  61. free(stud);
  62. return 0;
  63. }

平台会对你编写的代码进行测试:

测试样例

#include <stdio.h>
#include <stdlib.h>
#define COURSE_MAXNUM 5
//声明结构STUDENT
struct student
{
    long studentID;
    char studentName[20];
    char sex[4];
    struct{
        int year;
        int month;
        int day;
    }birthday;
    float score[COURSE_MAXNUM];
    float total;
    float average;
    int rank;
};
typedef struct student STUDENT;

//从文件fileName表示的二进制文件中读取学生基本信息,
//包括学号、姓名、性别、出生日期,若干门课程的成绩
//文件的第一行存储的信息包含了n和m,即学生的人数和课程门数
void ReadStudInfo(const char *fileName, STUDENT stud[])
{
/*************Begin***************/
FILE *fp = fopen(fileName,"r");
    if(fp == NULL)
    {
        printf("Failure to open %s!\n",fileName);
        exit(0);
    }
    int n,m;
    fread(&n,sizeof(n),1,fp);
    fread(&m,sizeof(m),1,fp);
    fread(stud,sizeof(STUDENT),n,fp);
    fclose(fp);



/*************End*****************/
}

//向文件fileName表示的二进制文件中写入学生基本信息,
//包括学号、姓名、性别、出生日期,若干门课程的成绩、总分、平均分、名次
//文件的第一行存储的信息应该包括n和m,即学生的人数和课程门数
void SaveResult(const char *fileName, STUDENT stud[],int n,int m)
{
/*************Begin***************/

FILE *fp = fopen(fileName,"w");
    if(fp == NULL)
    {
        printf("Failure to open %s!\n",fileName);
        exit(0);
    }
    fwrite(&n,sizeof(n),1,fp);
    fwrite(&m,sizeof(m),1,fp);
    fwrite(stud,sizeof(STUDENT),n,fp);
    fclose(fp);


/*************End*****************/
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1109627.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一篇文章解密如何轻松实现移动应用的电子和手绘PDF签名功能!

对PDF文件签名是移动设备上越来越普遍的使用需求&#xff0c;本文将描述自动生成/“手绘”签名与如何使用DevExpress Office File API组件来实现在.NET MAUI应用程序中快速合并签名/签名支持之间的区别。 DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员…

C# Onnx Yolov8 Detect 戴口罩检测

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace Onnx…

如何通过命令行进入到mysql?

如何通过命令行进入到mysql&#xff1f; 首先进入到C盘mysql安装目录的bin文件夹&#xff0c;然后在这个文件夹下打开命令行窗口&#xff0c;如下图&#xff1a; 接着输入进入命令mysql -u root -p如下图&#xff1a; 可以发现输入连接命令之后需要让你输入mysql连接密码&am…

层序中序还原二叉树

题目&#xff1a; 样例&#xff1a; 输入 6 0 2 5 1 4 3 1 2 4 0 5 3 输出 0 2 1 4 5 3 思路&#xff1a; 这道题&#xff0c;核心思想就是 结合 层序遍历的性质&#xff0c;根据 中序来判断左右孩子是否存在。 前中后序的遍历实现&#xff0c;主要都是 递归的形式实现遍历…

如何使用Python给图片添加水印

目录 一、安装Pillow库 二、导入Pillow库和需要用到的模块 三、添加水印 四、调用函数并设置参数 五、需要注意的方面 总结 在Python中&#xff0c;我们可以使用Pillow库来处理图像&#xff0c;包括添加水印。Pillow是Python中最流行的图像处理库之一&#xff0c;它支持多…

Android中使用Glide加载圆形图像或给图片设置指定圆角

一、Glide加载圆形头像 效果 R.mipmap.head_icon是默认圆形头像 ImageView mImage findViewById(R.id.image);RequestOptions options new RequestOptions().placeholder(R.mipmap.head_icon).circleCropTransform(); Glide.with(this).load("图像Uri").apply(o…

canvas画布绘制线条样式:粗细,圆角,拐角等

线条的粗线 lineWidth是改变线条的粗线的&#xff0c;默认是一个像素&#xff1a; context.beginPath(); context.moveTo(20, 50); context.lineTo(280, 50); context.lineWidth1; context.stroke();// 如果这里没有beginPath 你猜猜这三条线的宽度分别是多少 context.beginP…

分享一下微信投票小游戏怎么做

微信投票小游戏是一种非常有趣和互动的社交体验&#xff0c;可以促进用户参与和互动&#xff0c;同时也可以为企业或个人带来很多好处。下面我们将探讨如何制作一个微信投票小游戏&#xff0c;以及如何为主题写作一篇文章。 一、确定游戏目的和主题 首先&#xff0c;我们需要确…

AWS Lambda – 函数版本,别名,API网关,CodeDeploy协同

Hello大家好&#xff0c;我们今天继续讨论AWS Lambda的内容。 Lambda函数的版本 Lambda函数的版本和别名是辅助资源&#xff0c;我们可以通过创建这些资源管理函数的部署和调用。 首先&#xff0c;让我们来看一下Lambda 函数版本的概念。您可以使用版本来管理函数的部署。例…

汽车屏类产品(三):抬头显示Head-Up Display(HUD)

前言 你的下一台车,一定要考虑加装一个HUD。 汽车抬头显示器或汽车抬头显示器(也称为汽车HUD)是任何透明的显示器,它可以在汽车中显示数据,而不需要用户将视线从平时的视角移开。这个名字的由来源于飞行员能够在头部“向上”并向前看的情况下查看信息,而不是向下倾斜查…

Unity3D 在做性能优化时怎么准确判断是内存、CPU、GPU瓶颈详解

Unity3D是一款广泛应用于游戏开发的跨平台游戏引擎&#xff0c;但在开发过程中&#xff0c;我们经常会遇到性能瓶颈问题&#xff0c;如内存、CPU和GPU瓶颈。本文将详细介绍在Unity3D中如何准确判断和解决这些瓶颈问题&#xff0c;并给出相应的技术详解和代码实现。 对惹&#…

干式电抗器的尺寸和重量对系统有什么影响?

干式电抗器的尺寸决定了它在系统中所占的空间大小&#xff0c;较大尺寸的电抗器需要更多的安装空间&#xff0c;可能会增加系统的体积和复杂性。干式电抗器的重量对系统的负荷和支撑结构有影响&#xff0c;较大重量的电抗器可能需要更强大的支撑结构和更稳固的安装方式&#xf…

若要对多态类进行深拷贝,应使用虚函数的clone,而不是公开的拷贝构造赋值

拷贝一个多态类可能会导致切片问题&#xff0c;为了解决这个问题&#xff0c;应覆盖一个虚clone函数&#xff0c;让他根据实际类型进行复制并返回一个到新对象的所有权的指针&#xff08;std::unique_ptr&#xff09;,在派生类&#xff0c;通过使用所谓的协变返回类型来返回派生…

2023年中国婴童护肤发展概况及趋势分析:婴童功能护肤产品成为新趋势[图]

我国婴童护肤行业相关法律法规逐步完善&#xff0c;推动儿童化妆品的生产与研发&#xff0c;降低消费者购买决策消耗与担忧&#xff1b;2021年10月发布的《儿童化妆品监督管理规定》明确规定儿童化妆品配方设计应当遵循功效必需原则。总的来说&#xff0c;各项政策助力跨境婴童…

为修复各种问题,iOS 17.1应运而生,那么它到底解决什么问题或带来什么功能呢

iOS 17即将进行第一次重大更新&#xff0c;iOS 17.1的候选版本现在掌握在开发人员和测试人员手中。这通常是即将全面释放的迹象。 事实上&#xff0c;我们对iOS 17.1更新何时应该停止有一个很好的想法&#xff0c;这要归功于法国监管机构的一份声明&#xff0c;该声明称即将对…

【Axure教程】多图表动态切换

不同类型的图表用于分析和呈现不同类型的数据&#xff0c;柱状图用于比较不同类别或组之间的数据&#xff1b;条形图用于显示数据的分布情况&#xff0c;特别是连续数据的频率分布&#xff1b;饼图和环形图用于表示各部分占整体的比例&#xff1b;折线图、曲线图和面积图用于显…

解决matlab报错“输入参数的数目不足”

报错语句&#xff1a;tanh((peakNums-parameter)/2) 报错提示&#xff1a;输入参数的数目不足 运行环境&#xff1a;matlab2021b 分析原因&#xff1a; 当执行peakNums - parameter时&#xff0c;如果peakNums和parameter都是向量&#xff0c;那么这并不一定意味着会得到对应…

HR9110S 单通道控制工作原理

HR9110是应用于直流电机方案的单通道H桥驱动器芯片。HR9110的H桥驱动部分采用低导通电阻的PMOS和NMOS功率管。当芯片温度超过温度阈值&#xff08;典型150℃&#xff09;&#xff0c;HR9110会关断所有的输出&#xff0c;防止潜在隐患。只有当确认了芯片回归到工作温度&#xff…

PTE-精听学习(四)

目录 精听练习方法 精听与数量无关&#xff0c;与质量有关 听到一两个单词&#xff0c;就可以默写整句话 出现了过去时&#xff0c;有时间的指示代词 表示原本以为 精听练习方法 精听与数量无关&#xff0c;与质量有关 听到一两个单词&#xff0c;就可以默写整句话 突然…