c博客06-2019-结构体&文件
Posted ye736660997
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c博客06-2019-结构体&文件相关的知识,希望对你有一定的参考价值。
1.本章学习总结(2分)
1.1 学习内容总结:
1.1.1 结构体如何定义、成员如何赋值:
- 结构体的一般形式:
struct 结构体名
{
数据类型 成员名1;
数据类型 成员名2;
....
};
在结构体定义的时候,分为两种:
1.先定义结构体类型再定义变量名:
struct 结构体名
{
数据类型 成员名1;
数据类型 成员名2;
....
};
struct 结构体名 变量名;
eg:
2.在定义结构体类型的同时定义变量:
struct 结构体名
{
数据类型 成员名1;
数据类型 成员名2;
....
}变量名;
eg:
结构体成员的赋值:
结构体成员的赋值可以直接赋值也可以让用户输入,直接赋值时变量则为变量名.成员名=要赋值的内容
,如果是数组则需要用strcpy函数。
用户输入则需要注意如果是单一变量则需加&,如果是数组则不需要加&,变量名还是变量名.成员名
格式。
1.1.2 结构体数组排序做法:
- 结构体数组排序与一般排序没有区别,但注意的时交换变量时要整体交换,这就可以想到两种,第一种则是傻傻地将结构体每一个变量都交换,第二种则是将要交换的两个结构体的地址交换。
1.1.3 结构体指针怎么用:
- 结构体指针的定义:
结构体类型 *p;
- 如果一个结构体指针被赋值了结构体变量的首地址,那么这个指针变量就可以指向任意一个成员,即
p->成员名
=变量名.成员名
1.1.4 共用体、枚举类型做法:
- 共用体是一种多变量共享存储空间的构造类型,它允许几种不同的变量共用同一存储空间。
- 共用体成员可以表示多种属性。
- 枚举类型是指变量的值可以全部列出,定义一个枚举变量后,变量的值确定在定义之中。
- 枚举元素是常量,只能在定义阶段赋值。
1.1.5 文件读写,文件中数据如何读进结构体数组:
- 首先定义文件指针并用fopen函数打开文件,注意如果文件为空则需要特别处理,否则对后续操作会有很大影响。
- 其次将文件数据写入结构体数组可以用到fscanf函数或fgets函数。
- fgets:从文件中读取一行数据存入缓冲区(fgets遇到回车才会结束,不对空格和回车做任何转换就录入到缓冲区,结束后再往缓冲区写多一个 ,所以它是读一行数据)
- fscanf:从文件中读取一段数据存入缓冲区(fscanf遇到空格或回车就结束,它会把空格或回车转换为 ,所以它是读一小段数据)
2.综合作业--“我爱成语”(8分)
2.1 文件介绍
2.1.1 头文件介绍
idiom.h
在这个头文件下,我定义了一个结构体类型和两个函数:一个查找成语,一个将成语写入结构体变量。
按我原先的设想拿来定义多个成语操作的函数:成语的写入,成语的出题,核对题目等,奈何实力所限,就近乎空白了。
user.h
在这个头文件下,我定义了一个结构体类型和两个函数:一个菜单,一个关于用户的操作。
按我原先的设想拿来定义多个用户操作的函数:输入用户名的核对,密码的核对,用户的创建,用户成绩的统计,用户的排名。
2.1.2函数实现文件介绍
- main.cpp
这个文件下定义了主要的变量和进行主要的程序流程:文件的开闭,菜单等。
- 函数实现.cpp
这个文件下存放着之前定义的函数的内容。
2.2 运行结果
2.3大作业总结
深刻认识到自己知识储量与同学的差距,以及代码量的差距,还有一直搞不懂那个文件打开错误到底怎么解决。
以上是关于c博客06-2019-结构体&文件的主要内容,如果未能解决你的问题,请参考以下文章