C语言文件操作零基础新手入门保姆级教程

C语言文件操作零基础新手入门保姆级教程

文件操作概述

文件操作是指对文件进行读写、复制、移动、重命名等操作的过程。C语言中提供了丰富的文件操作函数,使得开发者可以轻松地实现文件的操作。

C语言文件操作的基本流程为:

  1. 打开文件
  2. 进行读/写操作
  3. 关闭文件

文件操作函数

  • 打开文件

fopen()函数用于打开文件,函数定义如下:

FILE *fopen(const char *filename, const char *mode);
  • filename:要打开的文件名及路径
  • mode:文件打开的模式,常用的模式见下表:
模式 含义
r 以只读方式打开文件,文件必须存在
w 以写方式打开文件,若文件不存在,创建该文件;若文件存在,清空文件信息
a 以追加方式打开文件,若文件不存在,创建该文件;若文件存在,追加写入
rb 以二进制方式读取文件
wb 以二进制方式写入文件
ab 以二进制方式追加文件

函数返回值:指向FILE类型的指针。

示例代码:

FILE *fp;
fp = fopen("test.txt", "w+");
if (fp == NULL) {
    printf("无法打开文件\n");
    exit(1);
}
  • 读写文件

fread()函数用于从文件中读取数据,函数定义如下:

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
  • ptr:指向读取数据存储位置的指针
  • size:读取数据块的大小(单位字节)
  • nmemb:此次读取数据块的数量
  • stream:打开的文件指针

函数返回值:读取的数据块数量。

示例代码:

char buff[6];
fread(buff, 6, 1, fp);
fclose(fp);
printf("%s\n", buff);

fwrite()函数用于将数据写入文件,函数定义如下:

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
  • ptr:指向写入数据存储位置的指针
  • size:写入数据块的大小(单位字节)
  • nmemb:此次写入数据块的数量
  • stream:打开的文件指针

函数返回值:写入的数据块数量。

示例代码:

char buff[6] = "hello";
fwrite(buff, 6, 1, fp);
fclose(fp);
  • 关闭文件

fclose()函数用于关闭文件。

int fclose(FILE *stream);
  • stream:打开的文件指针

函数返回值:关闭成功返回0,失败返回EOF(-1)。

示例代码:

fclose(fp);

文件操作示例

示例一:复制文件

此示例代码用于将源文件复制到目标文件。

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fp1, *fp2;
    char c;

    // 打开源文件
    fp1 = fopen("source.txt", "r");
    if (fp1 == NULL) {
        printf("无法打开源文件\n");
        exit(1);
    }

    // 创建目标文件
    fp2 = fopen("target.txt", "w+");
    if (fp2 == NULL) {
        printf("无法创建目标文件\n");
        exit(1);
    }

    // 读取并写入数据
    while ((c = fgetc(fp1)) != EOF) {
        fputc(c, fp2);
    }

    // 关闭文件
    fclose(fp1);
    fclose(fp2);

    printf("文件复制成功\n");
    return 0;
}

示例二:统计文件中字符个数

此示例代码用于统计文件中字符的个数。

#include <stdio.h>
#include <stdlib.h>

int main() {
    FILE *fp;
    char c;
    int count = 0;

    // 打开文件
    fp = fopen("test.txt", "r");
    if (fp == NULL) {
        printf("无法打开文件\n");
        exit(1);
    }

    // 统计字符个数
    while ((c = fgetc(fp)) != EOF) {
        count++;
    }

    // 关闭文件
    fclose(fp);

    printf("文件中共有 %d 个字符\n", count);
    return 0;
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言文件操作零基础新手入门保姆级教程 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言实现动态顺序表的实现代码

    让我来为大家详细讲解一下如何使用C语言实现动态顺序表的实现代码。 1. 动态顺序表的概述 动态顺序表是一种线性表,它基于数组实现。动态顺序表可以自动扩充或缩小其容量以存储数据。动态顺序表中元素的位置是按照它们在数组中的位置来确定的。它们在内存中是连续存储的,因此它们可以通过下标快速访问。 2. 动态顺序表的实现 我们使用C语言的方法来实现动态顺序表。首先,我…

    C 2023年5月23日
    00
  • C语言 if-else语句

    下面详细讲解一下C语言中if-else语句的完整使用攻略。 一、if-else语句 if-else语句是C语言中最基本的条件判断语句,用来根据条件来决定执行不同的语句。if语句用于判断条件是否成立,如果成立则执行if后面的语句,否则执行else后面的语句。 语法格式: if (condition) { // 如果条件成立,执行这里的语句 } else { /…

    C 2023年5月9日
    00
  • C语言的数字游戏算法效率问题探讨实例

    C语言的数字游戏算法效率问题探讨实例 简介 本篇文章主要探讨C语言中数字游戏算法的效率问题,包括算法的理解和实现方法、时间和空间复杂度分析以及优化过程。 算法理解 首先,我们需要理解什么是数字游戏算法。它包含以下三个要素: 初始状态:即初始的数字序列 目标状态:即目标的数字序列 可以进行的操作:例如交换两个数字、反转一段区间等 那么如何才能将初始状态变为目标…

    C 2023年5月22日
    00
  • 如何在C++中实现按位存取

    在C++中,我们可以使用位运算符实现按位存取操作,包括位与、位或、异或、左移、右移等。 使用位与操作实现按位存取 位与操作符 & 可以用来获取一个数字的特定位。假设我们要获取数字 5 的二进制表示中的第二位,可以将其与二进制表示为 00000100 的数字进行位与运算。代码示例如下: int num = 5; int bit = 1 <<…

    C 2023年5月23日
    00
  • C语言数组指针表示法

    C语言数组指针表示法是指使用指针访问数组元素的方法。在使用中,我们可以将数组名作为指针使用,指向数组的第一个元素,通过加减指针的偏移量来访问数组中的其他元素。 基本使用方法 定义数组,声明指针 c int a[5] = {1, 2, 3, 4, 5}; int *p; 将数组名作为指针使用,指向数组的第一个元素 c p = &a[0]; // 或者 …

    C 2023年5月9日
    00
  • Python中非常实用的Math模块函数教程详解

    Python中Math模块函数教程详解 Math模块是Python中一个非常实用和重要的模块,它提供了许多数学计算相关的函数,包括三角函数、指数、对数、常数以及其他数学函数。在本文中,我们将介绍一些最常用的Math模块函数及其应用。 1. 导入Math模块 首先,我们需要导入Math模块才能使用它的函数。在Python中,可以使用以下代码导入Math模块: …

    C 2023年5月22日
    00
  • C语言中static的使用方法实例详解

    C语言中static的使用方法实例详解 介绍 static是C语言中的一个关键字,可以用来修饰变量、函数、和数据结构。在不同的情境下,static有不同的用途和行为。本文将对static关键字的使用方法进行详细讲解,并提供两个具体的使用示例。 修饰变量 在函数内部使用 当static修饰局部变量的时候,变量的生命周期不会随着函数的调用结束而结束,而是会在程序…

    C 2023年5月23日
    00
  • C++中的对象初始化操作代码

    下面就来详细讲解一下 C++ 中的对象初始化操作代码的完整攻略。 什么是对象初始化 在 C++ 中,定义一个对象后不仅要申请存储空间,还需要对对象进行赋值或初始化,以便使其具备正确的初始值和状态。对象初始化即是给刚申请的存储空间一个初始值和状态的过程,其作用是为了确保程序的正确性和安全性。因此,在使用对象之前应确保其已被正确初始化。 对象初始化方式 在 C+…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部