C 语言文件操作入门:从基础到实战

C语言最新学习路线(从入门到实战) C语言最新学习路线 关于C语言的学习路线整理了一张思维导图(还没整理完成,后续完善),今天先分享给大家 阅读详情

对于初学 C 语言的同学来说,文件操作可能是一个有点抽象但又非常重要的知识点。当我们写的程序需要保存数据,而不是程序一退出数据就消失时,文件操作就派上用场了。这篇博客将带你全面了解 C 语言中的文件和文件操作,让你从入门到熟练掌握。

一、为什么需要文件?

在我们之前写的程序中,数据都是存储在内存中的。但内存有个特点,一旦程序退出,内存就会被回收,里面的数据也就丢失了。如果我们想让数据长久保存下来,比如做一个简单的通讯录程序,希望关闭程序后再次打开还能看到之前保存的联系人,这时候就需要用到文件了。

文件能让数据实现持久化存储,把数据保存到硬盘上,即使电脑关机,数据也不会丢失。

二、什么是文件?

在电脑中,硬盘上的文件就是我们通常所说的文件。但在 C 语言程序设计中,从功能角度可以把文件分为两类:

2.1 程序文件

这类文件和程序本身相关,包括:

  • 源程序文件(后缀为.c),就是我们写代码的文件
  • 目标文件(Windows 环境下后缀为.obj),是编译后生成的文件
  • 可执行程序(Windows 环境下后缀为.exe),是最终可以运行的程序

2.2 数据文件

这类文件存储的是程序运行时需要读写的数据,比如程序运行时从中读取数据的文件,或者程序输出内容的文件。我们这篇文章主要讨论的就是数据文件。

以前我们写的程序,输入输出都是针对终端的,从键盘输入,结果显示在显示器上。而有了数据文件,我们可以把数据输出到硬盘上,需要的时候再从硬盘读取到内存中使用。

2.3 文件名

一个文件要有唯一的标识,方便我们找到它。文件名由三部分组成:

  • 文件路径:比如c:\code\
  • 文件名主干:比如test
  • 文件后缀:比如.txt

合起来就是c:\code\test.txt,这就是一个完整的文件名。

三、二进制文件和文本文件

根据数据的组织形式,数据文件可以分为二进制文件和文本文件。

数据在内存中都是以二进制形式存储的。如果直接把内存中的二进制数据输出到外存文件中,这样的文件就是二进制文件。

如果把内存中的二进制数据转换为 ASCII 码形式再输出到外存,这样的文件就是文本文件。

举个例子,整数 10000 在内存中是以二进制形式存储的。如果直接输出到文件,就是二进制文件,占用 4 个字节;如果转换为 ASCII 码输出,就是 '1'、'0'、'0'、'0'、'0' 这 5 个字符,占用 5 个字节。

四、文件的打开和关闭

在对文件进行操作之前,我们需要先打开文件;操作完成后,要关闭文件。

4.1 流和标准流

C 语言中,为了方便对各种外部设备(如键盘、显示器、文件等)进行输入输出操作,抽象出了 “流” 的概念。我们可以把流想象成流淌着字符的河。

C 语言程序启动时,会默认打开 3 个流:

  • stdin:标准输入流,通常对应键盘
  • stdout:标准输出流,通常对应显示器
  • stderr:标准错误流,通常也对应显示器

这三个流的类型都是FILE*,也就是文件指针。

4.2 文件指针

在 C 语言的缓冲文件系统中,每个被使用的文件都会在内存中开辟一个文件信息区,用来存放文件的相关信息,比如文件名、文件状态、当前位置等。这些信息存放在一个结构体变量中,这个结构体类型由系统声明,名为FILE。

我们可以定义一个FILE*类型的指针变量来指向这个结构体变量,通过这个指针来操作文件,这个指针就称为文件指针。例如:

FILE* pf; // 定义一个文件指针变量

4.3 打开和关闭函数

C 语言中用fopen函数打开文件,用fclose函数关闭文件。

fopen函数的原型:

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

其中,filename是文件名,mode是打开方式。

fclose函数的原型:

int fclose ( FILE * stream );

文件的打开方式有很多种,常见的有:

打开方式含义如果文件不存在
"r"只读,打开文本文件出错
"w"只写,打开文本文件创建新文件
"a"追加,向文本文件末尾添加数据创建新文件
"rb"只读,打开二进制文件出错
"wb"只写,打开二进制文件创建新文件

 举个例子:

#include <stdio.h>
int main ()
{
    FILE * pFile;
    //打开文件
    pFile = fopen ("myfile.txt","w");
    //操作文件
    if (pFile!=NULL)
    {
        fputs ("Hello, file!",pFile);
        //关闭文件
        fclose (pFile);
    }
    return 0;
}

五、文件的顺序读写

顺序读写就是按照文件的顺序依次进行读写操作,C 语言提供了一系列函数来实现:

函数名功能适用于
fgetc字符输入函数所有输入流
fputc字符输出函数所有输出流
fgets文本行输入函数所有输入流
fputs文本行输出函数所有输出流
fscanf格式化输入函数所有输入流
fprintf格式化输出函数所有输出流
fread二进制输入文件
fwrite二进制输出文件

5.1 字符读写

fputc用于向文件写入一个字符,fgetc用于从文件读取一个字符。

例如,向文件写入字符:

#include <stdio.h>
int main()
{
    FILE* pf = fopen("test.txt", "w");
    if (pf != NULL)
    {
        fputc('A', pf); //向文件写入字符'A'
        fclose(pf);
        pf = NULL;
    }
    return 0;
}

 从文件读取字符:

#include <stdio.h>
int main()
{
    FILE* pf = fopen("test.txt", "r");
    if (pf != NULL)
    {
        int ch = fgetc(pf); //从文件读取一个字符
        printf("%c\n", ch);
        fclose(pf);
        pf = NULL;
    }
    return 0;
}

5.2 文本行读写

fputs用于向文件写入一行文本,fgets用于从文件读取一行文本。

例如:

#include <stdio.h>
int main()
{
    FILE* pf = fopen("test.txt", "w");
    if (pf != NULL)
    {
        fputs("Hello, world!\n", pf); //写入一行
        fclose(pf);
        pf = NULL;
    }
    
    pf = fopen("test.txt", "r");
    if (pf != NULL)
    {
        char buf[100];
        fgets(buf, 100, pf); //读取一行
        printf("%s", buf);
        fclose(pf);
        pf = NULL;
    }
    return 0;
}

5.3 格式化读写

fprintf和fscanf类似于printf和scanf,但它们是针对文件进行操作的。

例如:

#include <stdio.h>
struct Student
{
    char name[20];
    int age;
};
int main()
{
    struct Student s = {"Tom", 18};
    FILE* pf = fopen("student.txt", "w");
    if (pf != NULL)
    {
        fprintf(pf, "%s %d", s.name, s.age); //格式化写入
        fclose(pf);
        pf = NULL;
    }
    
    struct Student s2;
    pf = fopen("student.txt", "r");
    if (pf != NULL)
    {
        fscanf(pf, "%s %d", s2.name, &s2.age); // 式化读取
        printf("%s %d\n", s2.name, s2.age);
        fclose(pf);
        pf = NULL;
    }
    return 0;
}

5.4 二进制读写

fwrite和fread用于二进制文件的读写。

例如:

#include <stdio.h>
int main()
{
    int a = 100;
    FILE* pf = fopen("data.bin", "wb");
    if (pf != NULL)
    {
        fwrite(&a, sizeof(int), 1, pf); //二进制写入
        fclose(pf);
        pf = NULL;
    }
    
    int b;
    pf = fopen("data.bin", "rb");
    if (pf != NULL)
    {
        fread(&b, sizeof(int), 1, pf); //二进制读取
        printf("%d\n", b);
        fclose(pf);
        pf = NULL;
    }
    return 0;
}

六、文件的随机读写

有时候我们需要不按照顺序,直接跳到文件的某个位置进行读写,这就是随机读写,主要通过以下几个函数实现:

6.1 fseek 函数

fseek函数可以根据文件指针的位置和偏移量来定位文件指针,原型:

int fseek ( FILE * stream, long int offset, int origin );

其中,origin有三个取值:

  • SEEK_SET:从文件开头开始
  • SEEK_CUR:从当前位置开始
  • SEEK_END:从文件末尾开始

例如:

#include <stdio.h>
int main ()
{
    FILE * pFile;
    pFile = fopen ( "example.txt" , "wb" );
    fputs ( "This is an apple.", pFile );
    fseek ( pFile , 9 , SEEK_SET ); //从开头偏移9个位置
    fputs ( " orange", pFile );
    fclose ( pFile );
    return 0;
}

 这个程序最终会在文件中写入 “This is an orange”。

6.2 ftell 函数

ftell函数用于返回文件指针相对于起始位置的偏移量,原型:

long int ftell ( FILE * stream );

 例如:

#include <stdio.h>
int main ()
{
    FILE * pFile;
    long size;
    pFile = fopen ("myfile.txt","rb");
    if (pFile==NULL) 
        perror ("Error opening file");
    else
    {
        fseek (pFile, 0, SEEK_END); //定位到文件末尾
        size=ftell (pFile); //获取文件大小
        fclose (pFile);
        printf ("Size of myfile.txt: %ld bytes.\n", size);
    }
    return 0;
}

6.3 rewind 函数

rewind函数可以让文件指针回到文件的起始位置,原型:

void rewind ( FILE * stream );

例如:

#include <stdio.h>
int main ()
{
    FILE * pFile;
    char buffer[20];
    pFile = fopen ("myfile.txt","w+");
    fputs("Hello World", pFile);
    rewind(pFile); //回到文件开头
    fread(buffer, 1, 11, pFile);
    printf("%s\n", buffer); //输出Hello World
    fclose(pFile);
    return 0;
}

七、文件读取结束的判定

很多同学会错误地用feof函数来判断文件是否结束,其实feof函数的作用是:当文件读取结束时,判断结束的原因是否是遇到了文件尾。

正确的判断方法是:

  • 对于文本文件,判断fgetc的返回值是否为EOF,或者fgets的返回值是否为NULL。
  • 对于二进制文件,判断fread的返回值是否小于实际要读取的个数。

例如,文本文件的读取:

#include <stdio.h>
int main(void)
{
    int c;
    FILE* fp = fopen("test.txt", "r");
    if(!fp) {
        perror("File opening failed");
        return 1;
    }
    while ((c = fgetc(fp)) != EOF) //判断是否为EOF
    {
        putchar(c);
    }
    //判断结束原因
    if (ferror(fp))
        puts("Error reading file");
    else if (feof(fp))
        puts("End of file reached");
    fclose(fp);
    return 0;
}

八、文件缓冲区

C 语言采用缓冲文件系统,系统会自动为每个正在使用的文件在内存中开辟一块缓冲区。当我们向文件写入数据时,会先送到缓冲区,缓冲区满了之后再一起送到磁盘;读取数据时,会先把数据读到缓冲区,再从缓冲区送到程序数据区。

这个缓冲区的存在,要求我们在操作文件后,要么刷新缓冲区,要么关闭文件,否则可能导致数据没有真正写入文件。

可以用fflush函数来刷新缓冲区(注意:高版本 VS 可能不支持),而fclose函数在关闭文件时也会自动刷新缓冲区。

 例如:

#include <stdio.h>
#include <windows.h>
int main()
{
    FILE* pf = fopen("test.txt", "w");
    fputs("abcdef", pf); //先存到缓冲区
    printf("等待10秒,此时打开文件看不到内容\n");
    Sleep(10000);
    fflush(pf); //刷新缓冲区,数据写入文件
    printf("再等待10秒,此时打开文件可以看到内容\n");
    Sleep(10000);
    fclose(pf); //关闭文件也会刷新缓冲区
    pf = NULL;
    return 0;
}

总结

文件操作是 C 语言中非常重要的一部分,它能让我们的程序实现数据的持久化存储。本文介绍了文件的基本概念、打开关闭、顺序读写、随机读写、结束判定以及缓冲区等知识。对于初学的同学来说,最重要的是多动手实践,通过编写代码来熟悉这些函数的使用,这样才能真正掌握文件操作。

使一位零基础编程选手C语言从入门到精通——C语言基础专项知识点集合 这是一篇博主学习过程中所有C语言基础专项的集合,从最简单的`hello world!`开始,介绍C语言基本语法和一些底层知识。 阅读详情

相关推荐

C语言从入门到项目实战学习笔记

C语言概述数据类型与运算简单程序设计思想程序结构之循环函数真的会数组么终极进化之指针结构体文件操作进阶提高篇项目篇 概述 这里针对《C语言从入门到项目实战》和《C和指针》这两本整理出C的学习笔记,以备以后知识点复习,顺便给入门的小伙伴一个学习参考。 C语言特性 环境搭建:https://editor.youkuaiyun.com/md/?articleId=103575384 输入输出 数据类型与运算 简...

helloworld9998的博客 1954

15-C语言学习路线与资源推荐

《C程序设计语言》 | Brian Kernighan & Dennis Ritchie | ★★★★★ | 入门到进阶 || 《C Primer Plus》 | Stephen Prata | ★★★★★ | 入门 |学习编程最重要的是**动手实践**。| 《C陷阱与缺陷》 | Andrew Koenig | ★★★★☆ | 进阶 || 《C和指针》 | Kenneth Reek | ★★★★★ | 进阶 || **网络编程** | Socket编程、HTTP协议、TCP/IP |

qq_38856191的博客 251

C语言文件操作完全指南:从基础到高级应用

文件操作是编程中不可或缺的重要技能,在C语言中,文件操作功能强大而灵活。本文将全面介绍C语言文件操作的各个方面,包括基础操作、高级技巧以及实际应用场景,帮助您掌握这一核心编程技能。

vvilkin的学习备忘 913

C语言基础知识学习经典入门

目录 1 本课概要... 1 2 C语言入口方法... 1 3 C语言标准输入与输出... 1 4 C语言方法调用... 2 5 C语言宏定义 – 在编译阶段... 2 6 C语言宏方法定义 – 在编译阶段,无类型... 3 7 C语言条件判断... 3 8 C语言循环... 4 9 C语言结构体 – 存储数据的集合 – 结构体的赋值,直接是内存的拷贝... 5 10 C语言结...

Flyingfish 3万+

C语言从入门到精通:全面指南与实战案例

本文系统讲解了C语言的核心知识与实践技巧。入门部分涵盖基础语法、数据类型、运算符、流程控制及函数使用,帮助读者建立编程思维。进阶内容深入指针、内存管理、结构体、文件操作等关键概念,解析C语言高效灵活的底层特性。精通阶段聚焦算法优化、多模块编程、调试技巧及常见陷阱分析,并结合实际项目案例(如数据结构实现、系统级开发)提升实战能力。文章特别强调指针与内存的关联性、跨平台兼容性等难点,同时附带实例代码。通过循序渐进的学习,一定会有所收获!

胡茬大叔的博客 1336

【C语言实战(33)】C语言结构体与文件操作:从入门到实战

本文聚焦 C 语言结构体与文件操作基础实战,先讲解文件操作基本概念,含文本与二进制文件分类、FILE * 文件指针及 stdin 等标准文件;接着介绍文件打开(fopen 函数及多种模式)与关闭(fclose 函数)方法;随后通过实战案例演示学生结构体数据写入、读取文本文件的操作,还分析了文本文件存储结构体可读性强但占用空间大的优缺点,助力读者掌握相关实用技能。

邓邓子的博客 1718

C语言常见文件操作函数总结详解

C语言文件操作函数,怕是很多人的痛,因为在各种地方都能用到,说的简单一点在某些课堂作业上,可能会让你去操作一个txt文档的读写,再就是课程设计时候老师要求把数据存放到文本文件中,我曾经见过一个粉丝问我问题,他们的老师要求简直离谱,是必须使用文本文档来存放数据!我直接就????????????,怎么还有这种要求阿?数据库操作也不是不行阿,非得用文本文件,虽说这样比较死板,但也侧面反映出了教学对文件操作的重视,再往深了说,比如你要解析某个文件格式,比如常见的PE文件,关于文件的读写几乎是必不可少的一步,首先得读

KOOKNUT的博客 2317

地瓜派RDK X5部署YOLOv11n避坑指南:从Softmax瓶颈到BPU加速的实战解析

本文详细解析了在地瓜派RDK X5开发板上部署YOLOv11n模型时,从性能暴跌到成功优化的全过程。核心在于通过配置`node_info`将模型中的Softmax算子强制在BPU上以int16精度运行,解决了因算子被分配到CPU导致的严重性能瓶颈。实战部署后,模型推理延迟从126ms降至10.8ms,FPS从7.9提升至92.3,实现了显著的性能优化。

beta5的博客 865

C语言从入门到入坟

有穷性 在有限的操作步骤内完成。有穷性是算法的重要特性,任何一个问题的解决不论其采取什么样的算法,其终归是要把问题解决好。如果一种算法的执行时间是无限的,或在期望的时间内没有完成,那么这种算法就是无用和徒劳的,我们不能称其为算 法。确定性 每个步骤确定,步骤的结果确定。算法中的每一个步骤其目的应该是明确的,对问题的解决是有贡献的。如果采取了一系列步骤而问题没有得到彻底的解决,也就达不到目的,则该步骤是无意义的。可行性 每个步骤有效执行,得到确定的结果。每一个具体步骤在通过计算机实现时应能够使计算机完成,如果

谢小然的博客 6625

手把手教你用CANopen SDO报文控制步进电机(附CIA402协议详解)

本文详细解析了如何通过CANopen SDO报文控制步进电机,深入讲解CIA402协议的核心架构、状态机模型及对象字典管理,并提供实战代码示例。从SDO报文构造到多轴同步控制,帮助开发者掌握工业级步进电机的精确控制技术,适用于自动化设备开发。

weixin_33737774的博客 485

【车辆仿真】从0开始建立dSPACE RT Simulink工程:CAN通信(RTICANMM方法)

【工程环境信息】:本文基于链接文章搭建SCALEXIO Rack RTPC总线节点,用于与AutoBox通信硬件:上位机:惠普台式PC(Windows 11专业版)下位机(实时机):AutoBox (DS1006)板卡:DS6342软件:本文所使用的DBC链接提示:以下是本篇文章正文内容,下面案例可供参考!!!的部分一定记得配置,其他的按需配置RTICANMM的灵活度非常高,尽可能参考Help文档,理解相应的配置内容官方有RTICANMM的样例工程,在下方路径。

winnizap的博客 2381

C语言文件操作与数据持久化:从基础读写到实战应用

本文摘要: C语言文件操作是实现数据持久化的关键技术,涵盖文本与二进制文件的读写操作。文章详细介绍了文件指针、打开模式、路径表示等核心概念,并演示了基本文件操作流程(打开-操作-关闭)。重点讲解了文本文件的字符读写(fgetc/fputc)、字符串读写(fgets/fputs)和格式化读写(fscanf/fprintf)方法,通过文件复制示例展示了实际应用。文章强调错误处理和资源释放的重要性,为数据存储、日志记录等场景提供了实用解决方案。

今天比昨天更努力一点! 1万+

【Unity Shader】2D模型 3D模型混用的穿模问题(Spine在3D场景中出现前后穿模问题的解决办法)

问题描述: 在3D场景中使用Spine模型(2D), 因为Spine需要像Billboard类似的处理,永远是垂直与相机的, 所以一般情况下2D模型能正常显示且前后的阻挡关系也是没有问题的,如下图所示,一切都很美好.(这里用一个四边形,图中的福字表示2D模型) 可是如果后面蓝色的格子比较高,或者2D角色本身也比较高,那么就会出现模型穿插的问题,如下图所示: 如果吧2D模型竖立起来,前后关系肯定是没有问题的,所以也能避免模型穿插的问题,可是就没有Billboard效果,圆形的福字已经被压扁了,如下图:

Vitens的专栏 4591

C语言从入门到实战————文件操作

在C语言中,文件操作是指对文件进行读写和管理的一系列活动。这些操作是通过C标准库中的文件处理函数来实现的,使得程序员能够创建、打开、关闭、读取和写入文件。

2203_75422717的博客 1539

【论文学习】《Fully-Convolutional Siamese Networks for Object Tracking》2016年SiamFC 全卷积孪生网络用于目标跟踪

在这项工作中,我们脱离了跟踪中采用的传统在线学习方法,并展示了一种专注于在离线阶段学习强嵌入的替代方法。与在分类设置中的使用不同,我们证明,对于跟踪应用,孪生全卷积深度网络能够更有效地使用可用数据。这不仅反映在测试时,通过执行有效的空间搜索,也反映在训练时,其中每个子窗口都有效地代表一个有用的样本,而几乎没有额外的成本。实验表明,深度嵌入为在线跟踪器提供了自然丰富的特征来源,并使简单的测试时策略表现良好。我们相信这种方法是对更复杂的在线跟踪方法的补充,并期望未来的工作能够更彻底地探索这种关系。

SkyLeopard的博客 2419

C语言 在合并编译 ( 多.c文件 ) 情况下 实现 linked list ( 链表 ) 教程 . 更新ing

写在前面  依旧是参考借鉴了 浙江大学 温老师 的视频教程,很不错,在中国大学MOOC上,强力推荐!  虽说有借鉴,但是能保证的是每一行代码都是我自己经过理解后手敲出来的,所以才来做了这部分的教程。  最后,带 * 字符是我个人觉得可以添加的功能,按理来讲是可以不看的,而且大概率是可以有更好的改进的。  PS: 文章还在更新,如果文字蓝了(有超链接),说明写完了,如果没蓝,说明我在开军舰.jpg 源代码:  这里→源代码. 第一步:前置工作  先说一下每一篇都会出现 main 函数的,stage1 只是给没

weixin_47287635的博客 526

C语言从入门到实战——文件操作

C语言中的文件操作是通过使用文件指针来实现的。可以使用标准库中的函数来打开、读取、写入和关闭文件。打开文件:使用fopen()函数来打开文件,该函数接受两个参数,文件名和打开方式。打开方式可以是"r"(只读模式),"w"(写入模式),"a"(追加模式)等等。函数返回一个文件指针,可以在后续的操作中使用。FILE *fp;读取文件内容:使用fscanf()函数来从文件中读取内容。该函数接受一个文件指针和一个格式字符串作为参数,读取文件中的数据并按照格式字符串的指示将数据存储到相应的变量中。

qq_74013365的博客 1448

【AI智能体】Codex AI 辅助编程高级技能实战操作详解

Codex AI 辅助编程高级技能实战操作详解

congge 6757

[C编程入门] 第七章:C语言中的文件操作

💖💖⚡️⚡️专栏:C编程入门-轻松入门/系统总结⚡️⚡️💖💖[C编程入门] 专为C语言初学者设计,提供轻松易懂的入门教程与系统的知识总结。本专栏将带你从零开始,循序渐进地掌握C语言的核心概念与编程技巧。无论你是完全没有编程背景的学生,还是希望系统学习C语言的自学者,这里都有丰富的示例和详尽的解释,帮助你打下坚实的编程基础,轻松迈入程序设计的世界。通过本专栏的学习,你将能够自信地运用C语言解决问题,并为进一步的技术提升铺平道路。

极客代码 1381

Cadence PCB仿真 使用Allegro PCB SI为BRD文件创建通用型IBIS模型的方法图文教程

本文简单介绍使用Allegro PCB SI软件为BRD PCB设计文件中的元器件创建IBIS模型的方法。

fydar的博客 2169

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C语言文件操作全面解析:从基础概念到高级应用

文件是存储在外部介质(如硬盘、U盘等)上的数据集合。从编程视角看,文件是由一系列字节组成的序列,每个字节都可以通过文件指针来访问。

qq_67169366的博客 2142

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C语言零基础入门:20天从新手到精通!

C语言作为一门经典且广泛应用的编程语言,在计算机科学领域占据着举足轻重的地位。它不仅是许多高级编程语言的基础,还被广泛应用于系统软件、嵌入式开发、游戏开发等多个领域。对于零基础的技术人员来说,通过系统的学习和实践,在20天内从新手成长为精通C语言的开发者并非遥不可及。本文将为你提供一份详细的20天学习计划,助你快速掌握C语言。

星辰夜语的博客 2103

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C语言 | 文件操作详解与实战示例

本文全面介绍C语言文件操作的核心知识,包含文件类型区分(文本/二进制)、文件打开模式、顺序/随机读写函数(fopen/fread/fwrite等)、缓冲区机制等内容。重点解析feof()与ferror()的区别:feof用于判断文件是否读取完毕,ferror用于检测I/O错误,二者不可混淆。文中提供大量代码示例,并建议通过"学生成绩系统"等实践巩固文件操作技能。掌握文件操作能实现数据持久化,是C语言编程的重要能力。

2301_80228652的博客 9271

C语言基础知识入门(C语言初级知识汇总)

目录 一、第一个C程序 二、基本数据类型、变量和常量 1、基本数据类型 2、变量 3、常量 三、输入和输出 1、用printf函数输出数据 2、用scanf输入数据 3、字符输入输出函数 4、转义字符 5、关键字 四、数组 五、选择(判断)语句 六、循环语句 1、while循环 2、for循环 3、do...while循环 七、函数 八、操作符 1、关系操作符 2、单目操作符 3、位操作符 4、条件操作符 5、逻辑操作符 九、指针 十、结构...

m0_57897888的博客 3017

C语言之文件操作

文件是由文件路径+文件主干+文件后缀组成的。文件又被分为文本文件和二进制文件,两种区别就在于文本文件是给人看的,二进制文件是给机器看的,该文章主要说明了对一个文件的操作,是一个文件就会用于存放数据,将文件中的信息输入输出也是我们要掌握的。C语言的文件操作,是用于用户保存信息,和整理信息的一种方法,可以让不想被销毁的信息保留到下次打开可执行程序里面还有之前的内容。如何把信息放入文件呢?我们知道把一个大象放进冰箱只需要三步!打开冰箱门,把大象放进去,关闭冰箱门。当然我们操作文件也是如此,要先打开文件。

闲来垂钓碧溪上的博客 4112
上一篇: 深入理解 C 语言程序的编译与链接过程
下一篇: C语言核心库函数详解:字符、字符串与内存操作
THGML
博客等级 码龄3年 49粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值