Administrator
Administrator
发布于 2024-11-08 / 12 阅读
0
0

C语言打开文件(动态内存打开)

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(),可以获取文件的总大小。


评论