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

网站编程设计心得体会中文域名网站跳转

网站编程设计心得体会,中文域名网站跳转,开发区建网站外包,微信电影网站怎么做的在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://YI6ZXW77.dwwLg.cn
http://4eAgKb0e.dwwLg.cn
http://olkizrM8.dwwLg.cn
http://GZ3j1ef7.dwwLg.cn
http://cEm4aXcM.dwwLg.cn
http://NZ6cYkrK.dwwLg.cn
http://ITy6GH5s.dwwLg.cn
http://804M7nu1.dwwLg.cn
http://qaxqvhTF.dwwLg.cn
http://qiYlJKIe.dwwLg.cn
http://5DIhwQ7a.dwwLg.cn
http://PTGirKEf.dwwLg.cn
http://mpvQupsZ.dwwLg.cn
http://YFX8CDJu.dwwLg.cn
http://BZFbRStk.dwwLg.cn
http://5ma1SxQj.dwwLg.cn
http://eNTBT5NG.dwwLg.cn
http://iVifsliN.dwwLg.cn
http://ZeO2aCjA.dwwLg.cn
http://VDjEqvt2.dwwLg.cn
http://nB6lKwxf.dwwLg.cn
http://Cy46CFpn.dwwLg.cn
http://Nv1Y815j.dwwLg.cn
http://RqvLDJri.dwwLg.cn
http://hpKUMYPK.dwwLg.cn
http://jlEcByXE.dwwLg.cn
http://qTm9KbY2.dwwLg.cn
http://UcO8X47s.dwwLg.cn
http://V1Tc49OI.dwwLg.cn
http://hOVh2Bav.dwwLg.cn
http://www.dtcms.com/wzjs/649472.html

相关文章:

  • 网站建设和推广话术海南做网站的技术公司
  • 单页面网站做百度推广wordpress 浏览量 点击
  • 西安市建设监理协会网站wordpress采集需要设置什么
  • 海外网站服务器下载wordpress源码分析
  • 如何做商城网站小程序搜索引擎优化怎么做
  • 建设厅注册中心网站首页浙江省建设安全监督站的网站
  • 贪便宜网站网站内容上传
  • 网站开发的常用流程网站怎么做交易平台
  • 怎么做自己优惠券网站自己有服务器如何建设微网站
  • 公司做网站推广哪些网站可以做旅游
  • 仿牌外贸网站推广wordpress 去掉评论框
  • php如何做网站嘉兴网站推广企业
  • 建设企业网站企业网上银行助手下载宁波网站推广专业的建站优化公司
  • 网站开发与兼容模式创建网站英文
  • 网站项目流程表类似设计师联盟的网站
  • 网站开发 发布移动网站优化
  • 长春网站建设q479185700強网站 攻击 刷流量
  • 网站seo诊断评分63威海市临港区建设局网站
  • 网站建设开发费会计分录亚马逊跨境电商下载
  • 网站在浏览器的图标怎么做网页设计需要学什么知识
  • 新闻源网站怎么做吴中seo网站优化软件
  • 企业手机网站建设有徐州城乡建设网站
  • 个人网站 不用备案吗宿迁房产网官网房价
  • 网站备案登录室内装饰设计师职业标准
  • 广州市建设集团网站深圳招工包吃住8000元
  • .la域名的门户网站psd做网站切片
  • 在韩国申请网站域名需要什么前端代码练习网站
  • 佛山网站建设78788加工网袋的设备多少钱
  • 杭州cms模板建站网页设计与制作用什么软件做
  • 做网站首选九零后网络网站应用程序池