【C语言回顾】文件操作

news2024/12/22 14:32:23

  • 前言
  • 1. 文件打开模式
  • 2. 示例代码
    • 2.1 打开和关闭文件
    • 2.2 读写文件
    • 2.3 二进制文件操作
  • 结语

在这里插入图片描述
在这里插入图片描述

#include<GUIQU.h>
int main
{
上期回顾: 【C语言回顾】动态内存管理
个人主页:C_GUIQU
专栏:【C语言学习】
return 一键三连;
}

在这里插入图片描述

前言

各位小伙伴大家好!上期小编给大家讲解了C语言中的动态内存管理,接下来我们讲解一下文件操作!

在C语言中,文件操作是程序设计中非常重要的一部分。C语言提供了一套标准的输入输出库(stdio.h),通过这个库,我们可以实现文件的读取、写入、修改等操作。
以下是C语言文件操作的一些基本函数和它们的简要说明:

  1. fopen():打开一个文件,返回一个指向该文件的文件指针。
  2. fclose():关闭一个已经打开的文件。
  3. fprintf():向文件中写入格式化的数据。
  4. fscanf():从文件中读取格式化的数据。
  5. fread():从文件中读取一块数据。
  6. fwrite():向文件中写入一块数据。
  7. fseek():设置文件读写位置。
  8. ftell():返回当前文件读写位置。
  9. rewind():将文件读写位置设置到文件开头。
  10. feof():检测是否到达文件末尾。

1. 文件打开模式

fopen()函数中,我们可以指定文件的打开模式,常见的模式有:

  • r:只读模式打开文件,文件必须存在。
  • w:写入模式打开文件,如果文件不存在则创建,如果文件已存在则清空。
  • a:追加模式打开文件,如果文件不存在则创建,写入的数据会被添加到文件末尾。
  • r+:读写模式打开文件,文件必须存在。
  • w+:读写模式打开文件,如果文件不存在则创建,如果文件已存在则清空。
  • a+:读写追加模式打开文件,如果文件不存在则创建,写入的数据会被添加到文件末尾。

2. 示例代码

2.1 打开和关闭文件

#include <stdio.h>
int main() {
    FILE *fp;
    fp = fopen("example.txt", "w"); // 以写入模式打开文件
    if (fp == NULL) {
        perror("Error opening file");
        return -1;
    }
    fclose(fp); // 关闭文件
    return 0;
}

2.2 读写文件

#include <stdio.h>
int main() {
    FILE *fp;
    char str[] = "Hello, world!";
    
    fp = fopen("example.txt", "w"); // 以写入模式打开文件
    fprintf(fp, "%s", str); // 向文件中写入字符串
    fclose(fp); // 关闭文件
    fp = fopen("example.txt", "r"); // 以读取模式打开文件
    char buffer[100];
    fgets(buffer, 100, fp); // 从文件中读取字符串
    printf("%s", buffer); // 输出读取的字符串
    fclose(fp); // 关闭文件
    return 0;
}

2.3 二进制文件操作

#include <stdio.h>
typedef struct {
    int id;
    char name[20];
} Person;
int main() {
    Person people[2] = {
        {1, "Alice"},
        {2, "Bob"}
    };
    FILE *fp = fopen("people.bin", "wb"); // 以二进制写入模式打开文件
    fwrite(people, sizeof(Person), 2, fp); // 向文件中写入数据
    fclose(fp); // 关闭文件
    Person new_people[2];
    fp = fopen("people.bin", "rb"); // 以二进制读取模式打开文件
    fread(new_people, sizeof(Person), 2, fp); // 从文件中读取数据
    fclose(fp); // 关闭文件
    for (int i = 0; i < 2; i++) {
        printf("ID: %d, Name: %s\n", new_people[i].id, new_people[i].name);
    }
    return 0;
}

结语

以上就是小编对文件操作的详细讲解。
如果觉得小编讲的还可以,还请一键三连。互三必回!
持续更新中~!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1690407.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java入门基础学习笔记47——ArrayList

什么是集合呢&#xff1f; 集合是一种容器&#xff0c;用来装数据的&#xff0c;类似数组。 有数组&#xff0c;为什么还要学习集合呢&#xff1f; 数组定义完成并启动后&#xff0c;长度就固定了。 而集合是大小可变&#xff0c;开发中用的最多的。 集合的特点&#xff1a;大…

EI数据库如何出具中文论文检索报告?

Ei Compendex数据库是全球最全面的工程检索二次文献数据库&#xff0c;它收录了7,000,000多篇论文的参考文献和摘要。这些论文出自5,000多种工程类期刊、会议论文集和技术报告。Ei Compendex收录的文献涵盖了所有的工程领域&#xff0c;其中大约22%为会议文献&#xff0c;90%的…

设计模式14——组合模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 组合模式&#xff08;Composit…

k8s——Pod详解

一、Pod基础概念 1.1 Pod定义 Pod是kubernetes中最小的资源管理组件&#xff0c;Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的&#xff0c;例如&#xff0c;用于管理Pod运行…

10个企业用的wordpress中文模板

移民wordpress主题 移民代办wordpress主题&#xff0c;适合做海外移民咨询的代理公司搭建wordpress企业官方网站使用。 https://www.jianzhanpress.com/?p5130 模特演出wordpress主题 暗黑风格的wordpress主题模板&#xff0c;适用于模特演出公司或艺人经纪公司搭建wordpre…

办公楼智慧公厕解决方案云平台,助力办公环境品质提升

在现代化的办公楼中&#xff0c;智慧公厕解决方案云平台正发挥着至关重要的作用&#xff0c;有力地助力办公环境品质的提升。 一、云平台优势 智慧公厕云平台具有高效的集成性&#xff0c;将各种设备和信息整合在一起&#xff0c;实现了统一管理和调度。云平台还可以和海量的设…

今晚7点,不见不散,图算法新书发布会

亲爱的朋友们&#xff1a; 你们好&#xff01; 在这个知识飞速发展的时代&#xff0c;我们始终相信&#xff0c;学习与创新是推动社会进步的不竭动力。因此&#xff0c;嬴图与机械工业出版社共同邀请您参加我们即将举办的《图算法&#xff1a;行业应用与实践》新书发布会&…

如何为社交feed场景设计缓存体系?no.35

Feed 流场景分析 Feed 流是很多移动互联网系统的重要一环&#xff0c;如微博、微信朋友圈、QQ 好友动态、头条/抖音信息流等。虽然这些产品形态各不相同&#xff0c;但业务处理逻辑却大体相同。用户日常的“刷刷刷”&#xff0c;就是在获取 Feed 流&#xff0c;这也是 Feed 流的…

0基础学习Mybatis系列数据库操作框架——Mysql的Geometry数据处理之WKT方案

大纲 几何结构构建点点集合线线集合面面集合几何信息集合 TypeHandlerSQL操作写入操作读取操作完整XML Mapper测试代码建表SQL总结代码参考资料 WKT全称是Well-Known Text。它是一种表达几何信息的字符串内容。比如点可以用WKT表示为POINT (3 3)&#xff1b;线可以用WKT表示为L…

Spark项目实训(一)

目录 实验任务一&#xff1a;计算级数 idea步骤分步&#xff1a; 完整代码&#xff1a; linux步骤分布&#xff1a; 实验任务二&#xff1a;统计学生成绩 idea步骤分布&#xff1a; 完整代码&#xff1a; linux步骤分步&#xff1a; 实验任务一&#xff1a;计算级数 请…

如何在cPanel面板中开启盗链保护

本周有一个客户&#xff0c;购买Hostease的主机&#xff0c; 客户购买的是Linux虚拟主机&#xff0c;带cPanel面板的。询问我们的在线客服&#xff0c;如何可以防止他的网站上的图片不被盗用。cPanel的盗链保护功能可以帮助客户防止图片被盗链。 盗链&#xff08;Hotlinking&a…

代码随想录-算法训练营day46【动态规划08:单词拆分、多重背包!背包问题总结篇!】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part08● 139.单词拆分 ● 关于多重背包&#xff0c;你该了解这些&#xff01; ● 背包问题总结篇&#xff01; 详细布置 关于 多重背包&#xff0c;力扣上没有相关的题目&#xff0c;所以今天大家的…

05.cv PIL torch

文章目录 opencvrectanglecircle保存图像 PILresize与Opencv的互操作 torchtensor的创建和定义Torch的自动梯度计算Torch的模块torch的训练流程 opencv plt.imshow 以RGB形式显示cv2.imread 读取的是BGR import cv2 image cv2.imread(image.png) #加载图像 print(image.shap…

Linux--软硬链接

目录 0.文件系统 1.软硬链接 1.1见一下软硬链接 1.2软硬链接的特征 1.3软硬链接是什么&#xff0c;有什么作用&#xff08;场景&#xff09; 0.文件系统 Linux--文件系统-CSDN博客 1.软硬链接 1.1见一下软硬链接 1.这是软链接 这个命令在Unix和Linux系统中用于创建一个符号…

什么是DNS缓存投毒攻击,有什么防护措施

随着企业组织数字化步伐的加快&#xff0c;域名系统&#xff08;DNS&#xff09;作为互联网基础设施的关键组成部分&#xff0c;其安全性愈发受到重视。然而&#xff0c;近年来频繁发生的针对DNS的攻击事件&#xff0c;已经成为企业组织数字化发展中的一个严重问题。而在目前各…

vue学习3:开发者调试工具的下载安装

极简插件官网_Chrome插件下载_Chrome浏览器应用商店 (zzzmh.cn) 测试运行程序 网页中右键检查

【Unity3D美术】URP渲染管线学习01

扫盲简介 URP渲染管线是Unity3d提供的一种视觉效果更好的渲染模式&#xff0c;类似的还有Built RP&#xff08;默认最普通的渲染模式&#xff09;\ HDRP(超高清&#xff0c;对设备要求高)&#xff0c;视觉效果好&#xff0c;而且占用资源少&#xff01;成为主流渲染管线模式&a…

十进制同步计数器

十进制同步计数器 使用最多的十进制计数器是按照 8421 BCD 码进行计数的电路 十进制同步加法计数器 【例1】设计一个十进制同步加法计数器&#xff0c;要求电路按 8421 BCD 码进行加法计数 Step1&#xff1a;建立原始状态转换图 Step2&#xff1a;选触发器&#xff0c;求方…

粉丝问,有没有UI的统计页面,安排!

移动应用的数据统计页面具有以下几个重要作用&#xff1a; 监控业务指标&#xff1a;数据统计页面可以帮助用户监控关键业务指标和数据&#xff0c;例如用户活跃度、销售额、转化率等。通过实时更新和可视化呈现数据&#xff0c;用户可以及时了解业务的整体状况和趋势。分析用…

LeetCode 128 最长连续序列(hot100) 解题思路分享

题干&#xff1a; 思路&#xff1a; 如果对时间复杂度没有要求的话&#xff0c;可以先排序&#xff0c;再一段一段地找&#xff0c;这样的好处是空间占用小。 如果希望On的话&#xff0c;那就采取设置一个Set的方法&#xff0c;这样空间复杂度是On&#xff0c;但是时间复杂度…