1. 导入头文件
导入头文件stdio.h和stdlib.h
stdlib.h
(Standard Library Header)
stdlib.h
头文件包含了一些常用的标准库函数,用于内存管理、程序执行、类型转换、随机数生成等。它提供的函数主要与以下几类操作有关:
内存分配和释放:动态内存分配函数
malloc()
、calloc()
:动态分配内存realloc()
:调整已分配内存大小free()
:释放内存
程序退出和环境管理:控制程序的退出或获取环境变量
exit()
:退出程序并返回一个状态码atexit()
:注册一个程序退出时要调用的函数getenv()
:获取环境变量的值
类型转换:字符串与数值之间的转换
atoi()
、atof()
:将字符串转换为整型和浮点型strtol()
、strtod()
:将字符串转换为长整型、浮点型并支持更细致的错误检查
随机数生成:生成随机数
rand()
:生成随机数srand()
:设置随机数生成的种子
排序和查找:
qsort()
:快速排序bsearch()
:二分查找
stdio.h
(Standard Input and Output Header)
stdio.h
头文件包含了标准输入输出函数,用于文件和控制台的输入输出操作,是C语言中处理I/O操作的核心库。其功能包括:
标准输入输出:控制台 I/O 操作
printf()
、scanf()
:格式化输出和输入putchar()
、getchar()
:输出单个字符和读取单个字符
文件操作:文件的读写
fopen()
、fclose()
:打开和关闭文件fread()
、fwrite()
:从文件中读取和写入数据fprintf()
、fscanf()
:格式化写入和读取文件fseek()
、ftell()
:文件指针移动和获取当前位置feof()
、ferror()
:检查文件的结束或错误状态
缓冲区刷新:
fflush()
:刷新输出缓冲区,通常用于确保数据被立即输出
2.获取文件大小
fseek()
是 C 语言中的一个文件操作函数,用于在文件中移动文件指针的位置,从而实现随机访问文件内容的功能。它可以让程序在文件的任意位置读写数据,而不仅仅是顺序读写,非常适合对文件进行灵活的访问操作。
fseek()
函数的定义
int fseek(FILE *stream, long offset, int origin);
stream
:指向文件的指针,通常是由fopen()
函数返回的指针。offset
:移动的字节数,可以是正数、负数或零。正数表示向前移动,负数表示向后移动。origin
:指定从哪里开始移动,值可以是以下三个之一:SEEK_SET
:从文件的开头开始计算偏移量。SEEK_CUR
:从当前文件指针位置开始计算偏移量。SEEK_END
:从文件的末尾开始计算偏移量。
fseek()
返回值
成功:返回
0
。失败:返回非零值,通常是
-1
。如果返回失败,可以使用perror()
或ferror()
来获取错误的具体原因。
fseek()
的常见用法
将文件指针移动到文件开头:
fseek(file, 0, SEEK_SET);
将文件指针移动到文件末尾:
fseek(file, 0, SEEK_END);
将文件指针向前或向后移动:
fseek(file, offset, SEEK_CUR);
ftell()
函数的定义
ftell()
是 C 语言中的文件操作函数,用于获取文件指针的当前位置(即相对于文件开头的字节偏移量)。它通常与 fseek()
配合使用,以便在文件操作过程中知道当前的文件指针位置。
long ftell(FILE *stream);
参数:
stream
是一个指向打开文件的指针,通常由fopen()
函数返回。返回值:返回文件指针相对于文件开头的字节偏移量。
成功时,返回文件指针的当前位置(以字节为单位)。
失败时,返回
-1L
,表示获取文件位置失败。可以使用perror()
或ferror()
函数来查看错误信息。
ftell()
的用法
获取文件指针的当前位置:
ftell()
常用于在文件操作过程中,查看当前文件指针所处的位置。获取文件大小:通过将文件指针移动到文件末尾(使用
fseek()
),再调用ftell()
,可以获取文件的总大小。