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语言实现AI五子棋

    以下是详细的攻略。 一、概述 AI五子棋的实现可以使用简单的C语言编写。整个程序可以分为三个部分:用户交互、棋盘表示、决策引擎。用户交互包括输入和输出,棋盘表示包括棋盘的状态,决策引擎则用于决策AI下一步的位置。下面将分别对这三个部分进行详细的说明。 二、用户交互 用户交互可以通过控制台实现。程序需要输出当前棋局状态并获取用户下子的位置。输出可以使用简单的A…

    C 2023年5月23日
    00
  • 详解C++11中的线程库

    详解C++11中的线程库 C++11引入了线程库,这使得C++程序员可以轻松地编写多线程应用程序。线程库提供了一个标准化的方式来执行并发任务和同步不同线程之间的访问。 基础概念 线程的创建和执行 线程是计算机系统执行的最小的单位。在C++11中,线程的创建和执行非常简单,并且通过std::thread类实现。 我们可以使用std::thread对象的构造函数…

    C 2023年5月22日
    00
  • C语言/C++如何生成随机数

    生成随机数在编程中是一个常见的需求,C语言和C++都提供了相应的库函数来生成随机数。下面是生成随机数的完整攻略: 包含头文件 在C语言中需要包含stdlib.h头文件,而在C++中需要包含头文件,才可以使用生成随机数的函数。 // C语言 #include <stdlib.h> // C++语言 #include <random> s…

    C 2023年5月22日
    00
  • Win10错误代码0xc0000221怎么修复?Win10错误代码0xc0000221修复方法

    如果在启动Windows 10时出现错误代码0xc0000221,可能会使计算机无法正常启动操作系统。这通常是由于硬件或系统文件的损坏引起的。本文将详细介绍Win10错误代码0xc0000221的修复方法。 什么是Win10错误代码0xc0000221? Win10错误代码0xc0000221是一个启动错误代码,它意味着Windows 10无法加载关键的系统…

    C 2023年5月23日
    00
  • C++第三方日志库Glog的安装与使用介绍

    下面是关于C++第三方日志库Glog的安装与使用介绍的完整攻略: 安装Glog 系统要求 安装Glog前,你需要拥有以下环境: 操作系统:Ubuntu/Debian或CentOS/RHEL 编译器:GCC 4.8或更高版本 步骤 下载安装依赖库 Glog依赖于很多库,需要先下载安装: Ubuntu/Debian: sudo apt-get install a…

    C 2023年5月23日
    00
  • C语言使用广度优先搜索算法解决迷宫问题(队列)

    C语言使用广度优先搜索算法解决迷宫问题(队列)攻略 概述 本攻略主要介绍如何使用 C 语言中的广度优先搜索算法和队列解决迷宫问题。广度优先搜索算法是一种用于遍历或搜索树或图的算法,这里我们将其应用到迷宫问题中。迷宫问题是指在一个有障碍物和可通行区域的矩阵中,从起点到终点找到一条路径的问题。本攻略中,我们将使用队列来存储和处理迷宫问题中的节点。 算法流程 广度…

    C 2023年5月22日
    00
  • 浅谈C++对象的内存分布和虚函数表

    C++对象的内存分布和虚函数表是C++中非常重要的一个知识点。在本篇攻略中,我将详细讲解这个知识点,主要包括以下内容: C++对象的内存分布 虚函数表的概念 虚函数表的实现 示例说明 一、C++对象的内存分布 C++对象在内存中的分布一般包括以下几个部分: 对象头部分:一般包括虚函数表指针和类型信息指针; 对象的成员变量部分:对象的所有成员变量都存放在这里;…

    C 2023年5月22日
    00
  • js 转json格式的字符串为对象或数组(前后台)的方法

    要将 JS 转成 JSON 格式的字符串为对象或数组,有两种常见的方法,分别是: 1.使用 JSON.parse() 将 JSON 字符串转换为对象或数组; 2.使用 eval() 函数将 JSON 字符串转换为对象或数组。 下面我们分别来讲解这两种方法的使用方法及示例说明。 1.使用 JSON.parse() 转换成对象或数组JSON.parse() 方法…

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