小杨学编程 Day 9 C语言 文件操作及c语言常见关键字
·
前言:
上一次我们说了c语言的操作符 内存函数 扩容函数,这一期我们开始讲解c语言的文件操作及其关键字

文件操作:
一、操作方式
C 语言对文件的操作遵循 “打开 - 读写 - 关闭” 的流程:
- 打开文件:借助
fopen函数,需指定文件名和打开模式(如r为只读、w为只写等),函数会返回文件指针,用于后续操作。 - 读写操作:通过一系列专门函数与文件交互,实现数据的读取或写入。
- 关闭文件:使用
fclose函数关闭文件,释放系统资源,这一步很关键,若省略可能导致数据丢失。
二、操作函数
C 语言提供了丰富的文件操作函数,覆盖不同场景:
- 打开 / 关闭:
fopen负责打开文件,fclose负责关闭文件。 - 字符读写:
fgetc用于从文件读取单个字符,fputc用于向文件写入单个字符。 - 字符串读写:
fgets可读取文件中的字符串,fputs能将字符串写入文件。 - 格式化读写:
fscanf按指定格式从文件读取数据,fprintf按指定格式向文件写入数据。 - 二进制读写:
fread用于二进制形式读取文件数据,fwrite用于二进制形式写入文件数据。 - 位置控制:
fseek可移动文件内部指针位置,ftell获取指针当前位置,rewind把指针复位到文件开头。 - 错误与状态检查:
ferror检查文件操作是否出错,feof判断是否到达文件末尾,常配合循环进行读写操作。
三、模式参数
不同的打开模式决定了文件的操作权限和行为:
r:只读模式,要求文件必须存在,否则打开失败。w:只写模式,文件不存在则创建新文件,若文件已存在则清空原有内容。a:追加模式,在文件末尾进行写入操作,文件不存在则创建。r+/w+/a+:读写模式,在r、w、a的基础上增加了读权限,其中w+会清空文件。- 二进制增强:在基础模式后加
b,如rb表示二进制只读,wb表示二进制只写,用于处理二进制文件(如图片、音频等)。
关键字:
存储类相关
- auto:用于声明自动变量,是局部变量的默认存储类别,变量在进入作用域时创建,离开作用域时销毁,一般可省略不写。
- static:
- 修饰局部变量,使其成为静态局部变量,生命周期延长至程序运行结束,且只初始化一次。
- 修饰全局变量或函数,限制其作用域为当前文件,避免被其他文件访问。
- extern:声明外部变量或函数,表明该变量或函数在其他文件中定义,用于实现跨文件的变量和函数共享。
- register:建议编译器将变量存储在寄存器中,以提高访问速度,但编译器不一定会采纳,且不能对用
register声明的变量取地址。 - typedef:为已有的数据类型定义别名,能增强代码的可读性和可维护性。
数据类型相关
- char:字符类型,通常占用 1 个字节,可用来存储 ASCII 字符或小整数。
- int:整数类型,用于存储整数,不同编译器下占用字节数可能不同,一般为 4 字节。
- short:短整数类型,占用字节数比
int少,通常为 2 字节,能表示的整数范围更小。 - long:长整数类型,占用字节数比
int多,通常为 4 或 8 字节,可表示更大范围的整数。 - float:单精度浮点类型,占用 4 字节,用于存储小数,精度相对较低。
- double:双精度浮点类型,占用 8 字节,精度比
float高,适合对精度要求较高的小数存储。 - signed:表示有符号类型,可存储正数、负数和 0,是整数类型的默认符号属性,可省略。
- unsigned:表示无符号类型,只能存储非负数,相同字节数下,无符号类型能表示的正数范围比有符号类型大一倍。
- void:表示 “无类型”,可用于:
- 函数返回值类型,说明函数不返回任何值。
- 函数参数列表,说明函数没有参数。
- 指针类型,
void*是通用指针,可指向任意类型的数据。
- enum:用于定义枚举类型,将一组相关的常量命名,使代码更具可读性。
- struct:用于定义结构体类型,可将不同类型的数据组合在一起,形成一个新的复合数据类型。
- union:用于定义联合体(共用体)类型,其所有成员共享同一块内存空间,联合体的大小为其最大成员的大小。
控制语句相关
- if/else:用于条件判断,
if根据条件决定是否执行一段代码,else则在if条件不满足时执行另一段代码。 - switch/case/default:
switch用于多分支条件判断,根据表达式的值跳转到对应的case标签处执行代码;case用于标记分支;default用于处理所有case都不匹配的情况。 - for:用于循环结构,可指定循环的初始化、条件和更新操作,适合已知循环次数的场景。
- while/do-while:
while先判断条件,条件满足时执行循环体,可能一次都不执行。do-while先执行循环体,再判断条件,至少执行一次循环体。
- break:用于跳出当前所在的循环(
for、while、do-while)或switch语句。 - continue:用于跳过当前循环体中剩余的代码,直接进入下一次循环的条件判断。
- goto:可无条件跳转到函数内的指定标签处执行代码,但容易导致代码逻辑混乱,一般不推荐使用。
- return:用于从函数中返回,可带回一个返回值(如果函数有返回类型),也可用于提前结束函数执行。
其他
- const:用于声明常量,表明变量的值在初始化后不能被修改。
- sizeof:是一个运算符,用于计算数据类型或变量所占用的字节数。
- volatile:用于告诉编译器,变量的值可能会被意外地改变(如被硬件或其他线程修改),防止编译器对该变量的优化,确保每次都从内存中读取其值。
小杨在此预祝各位飞黄腾达!
感谢浏览!
更多推荐


所有评论(0)