C语言中的各种文件读写方法小结

C语言中的各种文件读写方法小结

常用的文件打开模式

在C语言中,我们进行文件读写操作时需要调用fopen函数打开文件,并传入文件打开模式参数。常用的文件打开模式如下:

  • "r" : 只读模式,打开文件用于读取。如果文件不存在,打开文件失败并返回NULL。
  • "w" : 写入模式,打开文件用于写入。如果文件不存在,则创建新文件。如果文件已存在,该模式会将文件全部内容删除,再进行写入。
  • "a" : 追加模式,打开文件用于写入,文件指针将会定位到文件的末尾。如果文件不存在,则创建新文件。
  • "rb" : 二进制文件读取模式
  • "wb" : 二进制文件写入模式
  • "ab" : 二进制文件追加模式

从文件中读取数据

在C语言中读取文件数据的函数是fread。函数原型如下:

size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
  • ptr:指向要读取内容存储的位置
  • size:每个数据类型占用的字节数
  • count:要读取的数据类型数量
  • stream:要读取的文件

读取文本文件示例代码如下:

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

#define DATA_SIZE 100

int main(void) {
    FILE *fp;
    char str[DATA_SIZE];

    fp = fopen("input.txt", "r");
    if (fp == NULL) {
        printf("Failed to open file input.txt\n");
        return 1;
    }

    while (fgets(str, DATA_SIZE, fp) != NULL) {
        printf("%s", str);
    }

    fclose(fp);
    return 0;
}

写入数据到文件中

在C语言中写入数据到文件的函数是fwrite。函数原型如下:

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
  • ptr:指向要写入内容存储的位置
  • size:每个数据类型占用的字节数
  • nmemb:要写入的数据类型数量
  • stream:要写入的文件

写入文本文件示例代码如下:

#include <stdio.h>

int main(void) {
    const char data[] = "This is a test data.\n";
    FILE *fp;

    fp = fopen("output.txt", "w");
    if (fp != NULL) {
        fwrite(data, sizeof(char), sizeof(data) / sizeof(char), fp);
        fclose(fp);
    }

    return 0;
}

使用fgetc和fputc函数进行文件读写

除了上述的fread和fwrite函数外,C语言还提供了fgetc和fputc函数用于读取和写入单个字符。

读取单个字符示例代码如下:

#include <stdio.h>

int main(void) {
    char ch;
    FILE *fp;

    fp = fopen("input.txt", "r");
    if (fp != NULL) {
        while ((ch = fgetc(fp)) != EOF) {
            putchar(ch);
        }
        fclose(fp);
    }

    return 0;
}

写入单个字符示例代码如下:

#include <stdio.h>

int main(void) {
    char ch;
    FILE *fp;

    fp = fopen("output.txt", "w");
    if (fp != NULL) {
        while ((ch = getchar()) != EOF) {
            fputc(ch, fp);
        }
        fclose(fp);
    }

    return 0;
}

以上就是C语言中的文件读写方法的详细讲解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言中的各种文件读写方法小结 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • java创建list

    以下是“Java创建List”的完整攻略: Java创建List 在Java中,List是一种常用的数据结构,它可以存储一组有序的元素。本攻略将介绍如何在Java中创建List。 步骤1:导入List类 在创建List之前,您需要导入Java的List类。您可以使用以下代码导入List类: import java.util.List; 步骤2:创建List对…

    other 2023年5月7日
    00
  • 易语言保存文件时通用对话框给该文件加上指定的后缀名

    易语言保存文件时通用对话框给该文件加上指定的后缀名攻略 在易语言中,可以使用通用对话框来保存文件,并给该文件加上指定的后缀名。下面是一个详细的攻略,包含了两个示例说明。 步骤一:创建通用对话框 首先,我们需要创建一个通用对话框,用于保存文件。可以使用创建通用对话框函数来实现: 创建通用对话框(\"保存文件\", \"保存\&qu…

    other 2023年8月5日
    00
  • 如何将anaconda更新到想要的python版本

    以下是详细讲解如何将Anaconda更新到想要的Python版本的完整攻略,过程中包含两个示例说明的标准Markdown格式文本: 如何将Anaconda更新到想要的Python版本 Anaconda是一个流行的Python发行版,它包含了许多常用的Python库和工具。如果你想要使用特定版本的Python,可以按照以下步骤更新Anaconda。 步骤1:查…

    other 2023年5月10日
    00
  • mac上安装openjdk11

    如果您需要在Mac上安装OpenJDK 11,可以按照以下步骤进行操作。以下是如何安装OpenJDK 11的完整攻略,包含两个示例说明。 步骤一:下载OpenJDK 11 访问OpenJDK 11的官方网站(https://jdk.java.net/archive/)。 找到适合您操作系统的版本,然后单击下载链接。 下载完成后,将文件保存到您的计算机上。 步…

    other 2023年5月9日
    00
  • sql函数translate与replace的区别

    SQL函数TRANSLATE与REPLACE的区别 在SQL中,TRANSLATE和REPLACE是两个常用的字符串函数,它们都可以用于替换字符串中的字符。本文将提供一个完整的攻略,介绍TRANSLATE和REPLACE的区别,并提供两个示例说明。 TRANSLATE函数 TRANSLATE函数用于将字符串中的某些字符替换为其他字符。可以按照以下格式使用TR…

    other 2023年5月8日
    00
  • Android自定义PhotoView使用教程

    Android自定义PhotoView使用教程 PhotoView是一个用于在Android应用中显示缩放和平移图片的开源库。通过它,我们可以轻松地实现图片的手势操作,包括缩放、双击放大、拖动等。本教程将详细讲解如何使用和自定义PhotoView。 1. 引入库依赖 在你的项目build.gradle文件中添加以下库依赖: implementation ‘c…

    other 2023年6月25日
    00
  • 详解Android GLide图片加载常用几种方法

    详解Android Glide图片加载常用几种方法 什么是Glide Glide是一个流行的Android图片加载库,可用于加载网络图片、本地文件和资源,支持GIF、Webp和缩略图等特性,自适应大小和缓存策略,而且易于使用。其特点有: 占用磁盘缓存空间少,避免浪费 加载速度快,渲染效果好 生命周期自动管理,避免内存泄漏和OOM 支持网络图片、本地文件和资源…

    other 2023年6月25日
    00
  • Android中Fragment子类及其PreferenceFragment的创建过程演示

    创建Fragment子类及其PreferenceFragment可以分为以下几个步骤: 步骤一:创建Fragment类 在Android Studio 中,创建一个新的类并继承自Fragment类,即可创建一个新的Fragment类。在Fragment类中,我们需要实现onCreateView方法,这个方法会在Fragment被添加到Activity中时被调…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部