C语言文件操作与相关函数介绍

C语言文件操作与相关函数介绍

什么是文件操作

在计算机中,文件是信息的集合,它通常存储在辅助存储设备上(例如磁盘、光盘等),以便长期保存和访问。文件操作是指对文件在内存和外存之间进行读取、写入、打开、关闭等操作的过程。

C语言中的文件操作

C语言提供了一组标准函数,用于对文件进行操作。这些函数包括:

  • fopen(): 打开一个文件
  • fclose(): 关闭一个文件
  • feof(): 检查文件是否已经到达文件末尾
  • fgetc(): 从文件中读取一个字符
  • fputc(): 向文件中写入一个字符
  • fgets(): 从文件中读取一行字符串
  • fputs(): 向文件中写入一行字符串
  • fprintf(): 格式化输出到文件
  • fscanf(): 从文件读取格式化输入

下面,我们将分别对以上函数进行详细介绍,并给出示例。

fopen()

fopen函数用于打开一个文件,并返回一个表示该文件的文件指针。

FILE *fopen(const char *filename, const char *mode);

函数参数说明:

  • filename:表示要打开的文件名
  • mode:表示文件的打开方式,包括以下几种:
  • r:以只读方式打开文件,文件必须存在
  • w:以只写方式打开文件,如果文件存在则清空文件内容,如果不存在则创建文件
  • a:以追加方式打开文件,如果文件存在则指针移到文件末尾,如果不存在则创建文件
  • r+:以读写方式打开文件,文件必须存在
  • w+:以读写方式打开文件,如果文件存在则清空文件内容,如果不存在则创建文件
  • a+:以读写方式打开文件,如果文件存在则指针移到文件末尾,如果不存在则创建文件

示例:

#include <stdio.h>

int main()
{
    FILE *fp;

    fp = fopen("test.txt", "w");
    fprintf(fp, "Hello, World!");
    fclose(fp);
    return 0;
}

这个示例程序打开了文件test.txt,并向其中写入了一行字符串"Hello, World!",然后关闭文件。

fclose()

fclose函数用于关闭一个已经打开的文件。

int fclose(FILE *stream);

函数参数说明:

  • stream:表示要关闭的文件指针

示例:

#include <stdio.h>

int main()
{
    FILE *fp;

    fp = fopen("test.txt", "w");
    fprintf(fp, "Hello, World!");
    fclose(fp);
    return 0;
}

这个示例程序打开了文件test.txt,并向其中写入了一行字符串"Hello, World!",然后关闭文件。注意,在使用完文件后,务必关闭文件,以释放系统资源。

feof()

feof函数用于判断一个文件是否已经到达文件末尾。

#include <stdio.h>

int main()
{
    FILE *fp;
    int c;

    fp = fopen("test.txt", "r");
    while ((c = fgetc(fp)) != EOF)
    {
        putchar(c);
    }
    if (feof(fp))
    {
        puts("已到文件末尾");
    }
    else
    {
        puts("未到文件末尾");
    }
    fclose(fp);
    return 0;
}

这个示例程序打开了文件test.txt,读取其中的每一个字符,并在读取结束后判断文件是否已经到达文件末尾。注意,EOF常量表示文件末尾。

fgetc()

fgetc函数用于从文件中读取一个字符。

int fgetc(FILE *stream);

函数参数说明:

  • stream:表示要读取的文件指针

示例:

#include <stdio.h>

int main()
{
    FILE *fp;
    int c;

    fp = fopen("test.txt", "r");
    c = fgetc(fp);
    while (c != EOF)
    {
        putchar(c);
        c = fgetc(fp);
    }
    fclose(fp);
    return 0;
}

这个示例程序打开了文件test.txt,读取其中的每一个字符,并输出到屏幕上。

fputc()

fputc函数用于向文件中写入一个字符。

int fputc(int c, FILE *stream);

函数参数说明:

  • c:表示要写入的字符
  • stream:表示要写入的文件指针

示例:

#include <stdio.h>

int main()
{
    FILE *fp;
    int c;

    fp = fopen("test.txt", "w");
    fputc('H', fp);
    fputc('e', fp);
    fputc('l', fp);
    fputc('l', fp);
    fputc('o', fp);
    fputc(',', fp);
    fputc(' ', fp);
    fputc('W', fp);
    fputc('o', fp);
    fputc('r', fp);
    fputc('l', fp);
    fputc('d', fp);
    fputc('!', fp);
    fclose(fp);
    return 0;
}

这个示例程序创建了一个文件test.txt,并向其中写入一行字符串"Hello, World!"。

fgets()

fgets函数用于从文件中读取一行字符串。

char *fgets(char *str, int n, FILE *stream);

函数参数说明:

  • str:表示用于存储读取结果的字符串指针
  • n:表示最大读取的字符数,包括结尾的'\0'
  • stream:表示要读取的文件指针

示例:

#include <stdio.h>

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

    fp = fopen("test.txt", "r");
    while (fgets(str, 50, fp) != NULL)
    {
        printf("%s", str);
    }
    fclose(fp);
    return 0;
}

这个示例程序打开了文件test.txt,读取其中的每一行字符串,并输出到屏幕上。

fputs()

fputs函数用于向文件中写入一行字符串。

int fputs(const char *str, FILE *stream);

函数参数说明:

  • str:表示要写入的字符串
  • stream:表示要写入的文件指针

示例:

#include <stdio.h>

int main()
{
    FILE *fp;

    fp = fopen("test.txt", "w");
    fputs("Hello, World!\n", fp);
    fputs("Hello, C Language!\n", fp);
    fclose(fp);
    return 0;
}

这个示例程序创建了一个文件test.txt,并向其中写入两行字符串。

fprintf()

fprintf函数用于格式化输出到文件。

int fprintf(FILE *stream, const char *format, ...);

函数参数说明:

  • stream:表示要写入的文件指针
  • format:表示要写入的格式化字符串,和printf函数中的字符串相同
  • ...:表示格式化字符串中的格式化参数,和printf函数相同

示例:

#include <stdio.h>

int main()
{
    FILE *fp;

    fp = fopen("test.txt", "w");
    fprintf(fp, "%d %s\n", 100, "Hello, World!");
    fclose(fp);
    return 0;
}

这个示例程序创建了一个文件test.txt,并向其中写入一行格式化字符串"100 Hello, World!"。

fscanf()

fscanf函数用于从文件读取格式化输入。

int fscanf(FILE *stream, const char *format, ...);

函数参数说明:

  • stream:表示要读取的文件指针
  • format:表示要读取的格式化字符串,和printf函数中的字符串相同
  • ...:表示格式化字符串中的格式化参数,和scanf函数相同

示例:

#include <stdio.h>

int main()
{
    FILE *fp;
    int num;
    char str[20];

    fp = fopen("test.txt", "r");
    fscanf(fp, "%d %s", &num, str);
    printf("%d %s\n", num, str);
    fclose(fp);
    return 0;
}

这个示例程序打开了文件test.txt,读取其中的一行格式化字符串"100 Hello, World!",并将其分别读取为整数和字符串,输出到屏幕上。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言文件操作与相关函数介绍 - Python技术站

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

相关文章

  • c++异或运算及其应用

    C++异或运算及其应用 什么是异或运算? 异或运算是一种二进制运算,用符号^表示。其规则是:两个二进制相同,结果为0;两个二进制不同,结果为1。比如: 1 ^ 1 = 0 0 ^ 1 = 1 1 ^ 0 = 1 0 ^ 0 = 0 此外,异或运算还有一个非常有用的性质,即相同的数异或结果为0,任何数异或0结果为该数本身。比如: 1 ^ 1 ^ 1 ^ 1 ^…

    其他 2023年3月28日
    00
  • C/C++ 中gcc和g++的对比与区别

    C/C++中gcc和g++的对比与区别 在C/C++编程中,gcc和g++都是常用的编译器。但是它们之间有什么区别呢?本文将进行详细讲解。 区别 gcc:只能编译C语言代码。 g++:支持C++和C语言的编译。 简单来说,gcc仅仅是C语言的编译器,而g++则是同时支持C++和C的编译器。因此,如果我们需要编译C++代码,那么就必须使用g++编译器。 此外,…

    other 2023年6月26日
    00
  • Linux下使用ip netns命令进行网口的隔离和配置ip地址

    在Linux下使用ip netns命令进行网口的隔离和配置IP地址攻略 1. 创建网络命名空间 首先,我们需要创建一个网络命名空间,用于隔离网络接口和IP地址配置。可以使用以下命令创建一个名为ns1的网络命名空间: sudo ip netns add ns1 2. 创建虚拟网桥 接下来,我们需要创建一个虚拟网桥,用于连接网络命名空间和物理网络。可以使用以下命…

    other 2023年7月30日
    00
  • zend Framework中的Layout(模块化得布局)详解

    Zend Framework中的Layout(模块化布局)详解 什么是Layout? 在Zend Framework中,Layout是一种用于定义网页布局的模块化机制。它允许您将网页的不同部分(如页眉、页脚、侧边栏等)分离开来,并在不同的页面中重复使用。通过使用Layout,您可以更好地组织和管理网页的结构和外观。 如何使用Layout? 要使用Layout…

    other 2023年8月23日
    00
  • ios7.1.1固件下载 苹果ios7.1.1正式版官方固件下载地址发布

    iOS 7.1.1固件下载攻略 苹果公司发布了iOS 7.1.1正式版固件,本攻略将详细介绍如何下载该固件。请按照以下步骤进行操作: 步骤一:访问官方网站 首先,打开你的浏览器,并访问苹果官方网站。你可以在浏览器的地址栏中输入https://www.apple.com来访问官方网站。 步骤二:导航至支持页面 在苹果官方网站上,找到并点击“支持”选项。通常,该…

    other 2023年8月4日
    00
  • react和vue的区别和优缺点

    React和Vue的区别和优缺点 React和Vue是两种流行的JavaScript框架,用于构建单页应用(SPA)和组件化应用开发。在很多方面它们都有相似之处,同时也有很多不同之处。本文将介绍React和Vue的区别和优缺点。 React React是由Facebook开发的开源JavaScript框架。它使用虚拟DOM技术(Virtual DOM)来提高…

    其他 2023年3月28日
    00
  • vs程序运行时出现未加载wntdll.pdb错误的原因及解决办法

    以下是关于“vs程序运行时出现未加载wntdll.pdb错误的原因及解决办法”的完整攻略,过程中包含两个示例。 背景 使用Visual Studio编写程序时,有时会出现未加载wntdll.pdb错误。这个错误通常是由于缺少或损坏的PDB文件引起的。在本攻略中,我们将讨论这个错误的原因,并提供解决办法。 错误原因 未加载wntdll.pdb错误通常是由于以下…

    other 2023年5月9日
    00
  • 隐藏文件夹怎么显示

    以下是隐藏文件夹的显示攻略: 1. 在Windows操作系统中显示隐藏文件夹 在Windows系统中,隐藏文件夹的默认状态是不可见的。因此,为了显示隐藏文件夹,我们需要进行如下步骤: 打开资源管理器 选择“查看”标签页 选中“隐藏元素”复选框 单击“应用”按钮 单击“确定”按钮 这样一来,隐藏的文件夹就会显示出来了。 举例来说,我们可以通过如下步骤在Wind…

    其他 2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部