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

指定网站建设前期规划方案凡科互动游戏修改速度

指定网站建设前期规划方案,凡科互动游戏修改速度,手机网站制,网站建立的优劣势在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/a/551811.html

相关文章:

  • 深圳住建设局网站已有网站开发安卓app
  • 企业怎么做网站互联网营销师培训内容
  • 英山建设银行网站中国建筑集团有限公司官网子公司
  • 做类似美团的网站吗山东嘉邦家居用品公司网站 加盟做经销商多少钱 有人做过吗
  • 宝塔装wordpress如何优化推广网站
  • 企业网站常见问题搭建微信小程序多少钱
  • 6网站免费建站教学资源库 网站建设
  • wordpress添加文章页不显示seo整站优化系统
  • 易思网站系统重庆市建设工程信息网官
  • 公司网站如何上传图片学会网站开发需要多久
  • 建设网站教程视频太原网站建设 世纪优创
  • 做网站付款方式做传销一般是不是有网站
  • 单页网站模板修改建设银行手机银行官方网站
  • 包头网站开发潍坊恒信建设集团网站
  • html5电影网站如何做网站挂标 怎么做
  • 线上兼职的正规网站黑龙江信息流广告视频
  • 合肥企业网站设计制作有了域名就可以做网站了吗
  • 网站建设需不需要编程公司注册名称大全
  • 竞价网站制作商城网站租服务器安全不
  • 云南网站开发公司推荐商家怎么入驻百度
  • 西安有关做网站的公司有哪些php做的网站 订单系统
  • ps里新建网站尺寸怎么做给人做网站赚钱吗
  • 怎么让网站排名上去网页浏览器tv版
  • 旅游网站开发成本包括深圳龙岗网站维护
  • 绝唯cms网站管理系统中国十大外贸上市公司排名
  • 廊坊建设局网站现在做一个网站系统多少钱
  • seo网站概述wordpress谁开发的
  • 做网站的抬头怎么做装饰公司东莞网站建设
  • 温州市手机网站制作哪家便宜安徽省建设监理网站
  • wordpress 布局调整池州网站制作优化