函数

简介: 函数

在C语言中,文件操作是通过一组特定的函数来实现的,这些函数允许程序创建、读取、写入、修改和删除文件。以下是一些常用的文件操作函数及其示例代码,这些代码将详细解释每个函数的功能和用法。

 

1. fopen() - 打开文件

 

fopen() 函数用于打开一个文件,并返回一个指向该文件的文件指针。如果文件打开失败,则返回 NULL。

#include <stdio.h>
 
int main() {
    FILE *fp;
    fp = fopen("example.txt", "w"); // 以写入模式打开文件
    if (fp == NULL) {
        printf("Failed to open file\n");
        return 1;
    }
    // ... 在这里进行文件操作 ...
    fclose(fp); // 记得关闭文件
    return 0;
}

 

2. fclose() - 关闭文件

 

fclose() 函数用于关闭一个已打开的文件。关闭文件是一个好习惯,因为它会释放文件所占用的所有资源。

 

3. fgetc() 和 fputc() - 读取和写入单个字符

 

fgetc() 函数从文件中读取一个字符,fputc() 函数将一个字符写入文件。

 

#include <stdio.h>
 
int main() {
    FILE *fp;
    char ch;
 
    fp = fopen("example.txt", "w+"); // 以读写模式打开文件
    if (fp == NULL) {
        printf("Failed to open file\n");
        return 1;
    }
 
    // 写入字符
    fputc('H', fp);
    fputc('i', fp);
 
    // 将文件指针重新定位到文件开头
    rewind(fp);
 
    // 读取字符
    ch = fgetc(fp);
    printf("%c\n", ch); // 输出: H
    ch = fgetc(fp);
    printf("%c\n", ch); // 输出: i
 
    fclose(fp);
    return 0;
}

 

4. fgets() 和 fputs() - 读取和写入字符串

 

fgets() 函数从文件中读取一行字符串,fputs() 函数将一个字符串写入文件。

 

#include <stdio.h>
 
int main() {
    FILE *fp;
    char line[100];
 
    fp = fopen("example.txt", "w+"); // 以读写模式打开文件
    if (fp == NULL) {
        printf("Failed to open file\n");
        return 1;
    }
 
    // 写入字符串
    fputs("Hello, World!\n", fp);
 
    // 将文件指针重新定位到文件开头
    rewind(fp);
 
    // 读取字符串
    fgets(line, sizeof(line), fp);
    printf("%s", line); // 输出: Hello, World!\n
 
    fclose(fp);
    return 0;
}

 

5. fprintf() 和 fscanf() - 格式化输入/输出

fprintf() 函数用于将格式化的数据写入文件,fscanf() 函数用于从文件中读取格式化的数据。

 

#include <stdio.h>
 
int main() {
    FILE *fp;
    int num = 123;
 
    fp = fopen("example.txt", "w+"); // 以读写模式打开文件
    if (fp == NULL) {
        printf("Failed to open file\n");
        return 1;
    }
 
    // 写入格式化的数据
    fprintf(fp, "The number is: %d\n", num);
 
    // 将文件指针重新定位到文件开头
    rewind(fp);
 
    // 读取格式化的数据(这里只是演示,因为文件内容已知)
    int read_num;
    fscanf(fp, "The number is: %d", &read_num);
    printf("Read number: %d\n", read_num); // 输出: Read number: 123
 
    fclose(fp);
    return 0;
}

 

6. fseek() 和 ftell() - 文件指针定位

 

fseek() 函数用于设置文件位置指针的位置,ftell() 函数返回当前文件位置指针的位置。

 

7. rewind() - 重置文件指针到文件开头

 

rewind() 函数将文件位置指针重新设置为文件的开头。这在多次读写同一文件时很有用。

 

以上代码示例仅展示了每个函数的基本用法,实际使用中可能需要根据具体需求进行更复杂的操作。同时,文件操作也可能涉及错误处理和资源管理等问题,因此在编写涉及文件操作的程序时,请务必注意这些问题。

相关文章
|
人工智能 监控 数据可视化
让历史经验自动预警:2025年场景化进度监控工具实践指南
本报告系统梳理进度监控工具四代演进路径,深入解析AI、区块链、联邦学习等技术在智能进度监控系统中的应用,涵盖核心功能模块、可视化分析、主流工具选型及实施方法论,展望下一代技术趋势,助力项目管理智能化转型。
490 0
|
7月前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL Docker 容器化部署全指南
本文为MySQL Docker单实例生产部署规范v1.0,涵盖镜像拉取、4种部署方案(测试/单机/企业入门)、结果验证与5类常见问题解决,集成备份恢复、安全基线及HA选型建议,适配SaaS初创、中小企及私有化场景,强调数据持久化、资源限制与内网安全访问,不适用于金融级高可用场景。
810 3
|
7月前
|
自然语言处理 监控 数据可视化
​​​​​​​挖掘用户心声:利用京东评论API驱动产品与服务优化
本文介绍如何通过京东评论API获取商品用户评价数据,结合数据分析与NLP技术,挖掘用户真实反馈,进行评分分布、情感分析、关键词提取与主题建模,并通过可视化手段呈现洞察,最终驱动产品优化、服务升级与用户体验提升,实现数据驱动的精细化运营。(238字)
|
传感器 数据采集 搜索推荐
重新定义未来:可穿戴设备的创新设计与制造
重新定义未来:可穿戴设备的创新设计与制造
571 9
|
数据采集 存储 NoSQL
如何避免Python爬虫重复抓取相同页面?
如何避免Python爬虫重复抓取相同页面?
|
存储 数据库 C语言
c语言实现b树
这篇文章介绍了B树的概念、特点和应用场景,并提供了一个C语言实现的B树数据结构示例代码,包括节点定义、创建新节点、分裂节点、插入关键字和打印B树等函数。
442 1
c语言实现b树
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
这篇文章详细解释了工厂模式,包括简单工厂、工厂方法和抽象工厂三种类型。每种模式都通过代码示例展示了其应用场景和实现方法,并比较了它们之间的差异。简单工厂模式通过一个工厂类来创建各种产品;工厂方法模式通过定义一个创建对象的接口,由子类决定实例化哪个类;抽象工厂模式提供一个创建相关或依赖对象家族的接口,而不需要明确指定具体类。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
|
存储 JavaScript 前端开发
箭头函数和普通函数在性能方面有什么区别
【10月更文挑战第27天】箭头函数和普通函数在性能方面各有特点,箭头函数在某些场景下具有一定的性能优势,但在实际开发中,不能仅仅为了追求性能而盲目地选择箭头函数或普通函数,应该根据具体的应用场景、代码可读性和可维护性等多方面因素综合考虑来选择合适的函数定义方式。
379 2
|
存储 数据处理 索引
数据类型转换:int()、str()、float()
在Python中,数据类型转换是一项基础且重要的操作
|
算法 Linux iOS开发
Zipline 3.0 中文文档(一)(2)
Zipline 3.0 中文文档(一)
813 7