当前位置: 首页 > wzjs >正文

常熟网站松原市新闻

常熟网站,松原市新闻,wordpress3d标签插件,国企有没有必要建设网站在C语言中,文件操作是程序开发中非常重要的一部分。无论是读取文件内容、写入数据,还是对文件进行随机访问,C标准库都提供了丰富的函数来支持这些操作。本文将详细介绍常用的文件操作函数,包括fread、fwrite、fseek、ftell和fclos…

在C语言中,文件操作是程序开发中非常重要的一部分。无论是读取文件内容、写入数据,还是对文件进行随机访问,C标准库都提供了丰富的函数来支持这些操作。本文将详细介绍常用的文件操作函数,包括freadfwritefseekftellfclose,并通过实例介绍这些函数的使用方法。


目录

1. fread 函数

2. fwrite 函数

3. fseek 函数

4. ftell 函数

5. fclose 函数

6. 综合示例:文件的读取、写入和随机访问

7. 总结


1. fread 函数

fread函数用于从文件中读取数据,通常用于二进制文件的读取操作。它的函数原型如下:

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

参数说明:

  • ptr:指向一个内存块的指针,用于存储从文件中读取的数据。

  • size:每个数据项的大小(以字节为单位)。

  • nmemb:要读取的数据项的数量。

  • stream:指向FILE对象的指针,指定一个输入流。

返回值:

  • 返回成功读取的数据项数量。如果返回值小于nmemb,可能是因为遇到了文件末尾或发生了读取错误。

示例:读取二进制文件中的数据

#include <stdio.h>
#include <stdlib.h>int main() {FILE *file;int *buffer;size_t num_elements = 5;size_t elements_read;// 打开二进制文件file = fopen("data.bin", "rb");if (file == NULL) {perror("无法打开文件");return EXIT_FAILURE;}// 分配内存来存储读取的数据buffer = (int *)malloc(num_elements * sizeof(int));if (buffer == NULL) {perror("内存分配失败");fclose(file);return EXIT_FAILURE;}// 使用fread读取数据elements_read = fread(buffer, sizeof(int), num_elements, file);if (elements_read < num_elements) {if (feof(file)) {printf("已到达文件末尾,读取的元素数量少于预期。\n");} else if (ferror(file)) {perror("读取文件时发生错误");}}// 打印读取的数据for (size_t i = 0; i < elements_read; i++) {printf("%d ", buffer[i]);}printf("\n");// 释放内存并关闭文件free(buffer);fclose(file);return EXIT_SUCCESS;
}


2. fwrite 函数

fwrite函数用于将数据写入文件,通常用于二进制文件的写入操作。它的函数原型如下:

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

参数说明:

  • ptr:指向要写入文件的数据的指针。

  • size:每个数据项的大小(以字节为单位)。

  • nmemb:要写入的数据项的数量。

  • stream:指向FILE对象的指针,指定一个输出流。

返回值:

  • 返回成功写入的数据项数量。如果返回值小于nmemb,说明写入过程中发生了错误。

示例:将数据写入二进制文件

#include <stdio.h>
#include <stdlib.h>int main() {FILE *file;int data[] = {10, 20, 30, 40, 50};size_t num_elements = sizeof(data) / sizeof(data[0]);// 打开二进制文件file = fopen("output.bin", "wb");if (file == NULL) {perror("无法打开文件");return EXIT_FAILURE;}// 使用fwrite写入数据size_t elements_written = fwrite(data, sizeof(int), num_elements, file);if (elements_written < num_elements) {perror("写入文件时发生错误");}// 关闭文件fclose(file);printf("数据已成功写入文件。\n");return EXIT_SUCCESS;
}


3. fseek 函数

fseek函数用于设置文件指针的位置,以便在文件中进行随机访问。它的函数原型如下:

int fseek(FILE *stream, long offset, int whence);

参数说明:

  • stream:指向FILE对象的指针。

  • offset:偏移量(以字节为单位),表示从whence位置开始的偏移。

  • whence:起始位置,可以是以下值之一:

    • SEEK_SET:文件开头。

    • SEEK_CUR:当前文件指针位置。

    • SEEK_END:文件末尾。

返回值:

  • 如果成功,返回0;如果失败,返回非零值。

示例:随机访问文件

#include <stdio.h>
#include <stdlib.h>int main() {FILE *file;int value;// 打开二进制文件file = fopen("output.bin", "rb");if (file == NULL) {perror("无法打开文件");return EXIT_FAILURE;}// 将文件指针移动到第3个整数的位置fseek(file, 2 * sizeof(int), SEEK_SET);// 读取数据fread(&value, sizeof(int), 1, file);printf("第3个整数的值是:%d\n", value);// 关闭文件fclose(file);return EXIT_SUCCESS;
}


4. ftell 函数

ftell函数用于获取当前文件指针的位置(以字节为单位)。它的函数原型如下:

long ftell(FILE *stream);

参数说明:

  • stream:指向FILE对象的指针。

返回值:

  • 返回当前文件指针的位置。如果发生错误,返回-1L。

示例:获取文件指针位置

#include <stdio.h>
#include <stdlib.h>int main() {FILE *file;long position;// 打开二进制文件file = fopen("output.bin", "rb");if (file == NULL) {perror("无法打开文件");return EXIT_FAILURE;}// 移动文件指针到文件末尾fseek(file, 0, SEEK_END);// 获取文件指针位置(文件大小)position = ftell(file);printf("文件大小:%ld 字节\n", position);// 关闭文件fclose(file);return EXIT_SUCCESS;
}


5. fclose 函数

fclose函数用于关闭一个打开的文件,释放与该文件关联的资源。它的函数原型如下:

int fclose(FILE *stream);

参数说明:

  • stream:指向FILE对象的指针。

返回值:

  • 如果成功关闭文件,返回0;如果失败,返回EOF。

示例:关闭文件

#include <stdio.h>
#include <stdlib.h>int main() {FILE *file;// 打开文件file = fopen("output.bin", "rb");if (file == NULL) {perror("无法打开文件");return EXIT_FAILURE;}// 操作文件...// 关闭文件if (fclose(file) == 0) {printf("文件已成功关闭。\n");} else {perror("关闭文件时发生错误");}return EXIT_SUCCESS;
}


6. 综合示例:文件的读取、写入和随机访问

以下是一个综合示例,演示如何使用fwritefreadfseekftell函数对文件进行操作。

#include <stdio.h>
#include <stdlib.h>int main() {FILE *file;int data[] = {10, 20, 30, 40, 50};int buffer[5];size_t num_elements = sizeof(data) / sizeof(data[0]);// 写入数据到文件file = fopen("data.bin", "wb");if (file == NULL) {perror("无法打开文件");return EXIT_FAILURE;}fwrite(data, sizeof(int), num_elements, file);fclose(file);// 读取文件中的数据file = fopen("data.bin", "rb");if (file == NULL) {perror("无法打开文件");return EXIT_FAILURE;}fread(buffer, sizeof(int), num_elements, file);for (size_t i = 0; i < num_elements; i++) {printf("%d ", buffer[i]);}printf("\n");// 使用fseek和ftell获取文件大小fseek(file, 0, SEEK_END);long file_size = ftell(file);printf("文件大小:%ld 字节\n", file_size);// 关闭文件fclose(file);return EXIT_SUCCESS;
}


7. 总结

  • fread:用于从文件中读取数据,适合二进制文件操作。

  • fwrite:用于将数据写入文件,适合二进制文件操作。

  • fseek:用于移动文件指针,支持随机访问。

  • ftell:用于获取当前文件指针的位置。

  • fclose:用于关闭文件,释放资源。

http://www.dtcms.com/wzjs/493105.html

相关文章:

  • wordpress本地网站东莞企业推广网站制作
  • 建设的网站安卓优化大师app
  • 小程序网站建设制作网络营销教程
  • 建设门户公司网站seo公司多少钱
  • 在哪个网站做二建测试题比较好百度权重什么意思
  • 网站的目录排名真难做网络推广课程培训
  • 江苏嘉隆工程建设有限公司网站有效获客的六大渠道
  • 百姓网二手车买卖seo网站推广如何做
  • 三好街 做网站合肥网站seo
  • 上海昆山网站公司哪家好今天晚上19点新闻联播直播回放
  • 网站建设上海网站优化外包公司
  • 张家港网站建设百度搜索优化
  • 网站建设怎么报印花税管理微信软件
  • 商河便宜做网站的公司站长统计代码
  • 网站主页用ps做最权威的品牌排行榜网站
  • 青州住房建设局网站游戏推广代理加盟
  • 公司自己的网站怎样做口碑营销的优缺点
  • wordpress后台编辑框 自定义按钮青岛百度快速优化排名
  • 深圳做网站报价名片seo什么意思
  • 做二手房需要用到哪些网站搜集房源nba交易最新消息汇总
  • 安徽网站建设的基本步骤襄阳网站seo
  • 网站百科源码怎么做小说推广挣钱
  • 莒县网站制作2345浏览器网站进入
  • 网络营销网站建设流程自助建站系统模板
  • 哪些网站可以做企业推广如何免费制作网站
  • 网站网站制作网站社区营销
  • 网站中的轮播怎么做四种营销策略
  • 网站中的ppt链接怎么做西安seo按天收费
  • 南宁商城开发360优化大师app
  • 大学科技园东区 做网站友情链接怎么添加