C语言结构体指针操作与文件打开方式
需积分: 22 18 浏览量
更新于2024-08-19
收藏 4.07MB PPT 举报
"C语言结构体指针用于访问结构体成员及文件操作基础知识"
在C语言中,结构体(struct)是一种复合数据类型,允许我们组合不同类型的数据在一个单一的结构里。在给定的示例中,`struct student`定义了一个包含学号(num)、姓名(name)和性别的学生结构体。接下来,我们创建了一个`student`类型的数组`st`,并初始化了三个学生的数据。
关键知识点:
1. **结构体指针**:在C语言中,我们可以使用指针来访问结构体的成员。在`main`函数中,`struct student *p`定义了一个指向`student`类型的指针`p`。通过`p=&st[0];`,我们让`p`指向`st`数组的第一个元素,即`st[0]`。使用`p->num`,`(*p).name`和`st[i].sex`都是访问结构体成员的方法,其中`p->num`等价于`(*p).num`,它们都表示通过指针`p`访问`num`成员。
2. **结构体数组遍历**:在`for`循环中,`i`从0递增到2,`p++`使指针`p`每次迭代后指向下一个`student`结构体元素。这样,循环内部的`printf`函数就可以依次打印出每个学生的信息。
3. **文件操作**:文件操作在C语言中通常涉及`fopen`函数来打开文件,`fclose`函数来关闭文件,以及`fprintf`和`fscanf`等函数进行数据的读写。例如,`fp=fopen("aa.txt","r");`尝试以只读模式打开名为"aa.txt"的文件,`fp`是文件指针,如果文件打开成功,`fopen`会返回一个非空指针。
4. **文件路径**:文件路径的指定可以是相对路径或绝对路径。相对路径(如"aa.txt")基于当前工作目录,而绝对路径(如"d:\\fengyi\\bkc\\aa.txt")则是完整的文件位置。
5. **用户输入文件名**:在实际应用中,我们可能需要从用户那里获取文件名。例如,`char infile[30];`可以用来存储用户输入的文件路径,`f("%s", infile);`则可以读取用户输入。
6. **文件模式**:"r"表示读取模式,"w"表示写入模式,"a"表示追加模式。当以写入或追加模式打开文件时,C语言会将ASCII码数据转换为二进制形式存储;反之,读取时会将二进制数据转换回ASCII码。
7. **文件关闭**:在完成文件操作后,记得调用`fclose(fp)`来关闭文件。`fclose`会先将缓冲区中的数据写入文件,然后释放文件指针,确保数据的安全保存。
这些基本的C语言编程技巧对于理解和编写涉及结构体和文件操作的程序至关重要。在实际开发中,还需要考虑错误处理、内存管理和效率优化等问题。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2018-10-21 上传
2010-03-10 上传
2010-12-06 上传
2021-10-03 上传
2011-11-08 上传
2014-11-21 上传
getsentry
- 粉丝: 28
- 资源: 2万+
最新资源
- 2019-is262b-techdmgt:is262b类访问的回购
- 基于java的开发源码-很不错的计算器.zip
- Royale:加利福尼亚州阿纳海姆市-Minecon 2016展览展示。 大逃杀
- poker:扑克培训网站
- GGRD_DataBase
- good-for-nothing-compiler:这是 Joel Pobar 和 Joe Duffy 于 2005 年在 PDC 上提出的 C# 中旧的 Good for Nothing Compiler 的延续
- 基于java的开发源码-局域网广播系统Java源码.zip
- PML-30:在Phys-Math Lyceum 30的“ CGSG”课程中制作的项目
- DesignPatterns:Java23种设计模式代码练习
- DSW-FedericoMurillo
- JS调试工具源码-易语言
- roformer-pytorch:Roformer的实现,这是一种带有旋转位置嵌入的变压器,这是一种未公开的相对位置编码新技术,正在中国的NLP圈子中流传
- 行业分类-设备装置-可随升降架运动的独立转料平台.zip
- Estudos-em-Geral:Projetos criados nas aulas e cursos
- JMS:基于Apache ActiveMQ JMS实现的远程服务分发提供程序
- node-redis-namespace:命名空间 Redis 键