C零基础视频-47-C语言操作文件

目录

  • C语言文件操作函数
  • fopen:打开或创建文件
    • fopen中的mode参数
  • fclose:关闭文件

C语言文件操作函数

C标准库中提供了一系列的函数,来操作文件。因为C库函数做了这个中间层,屏蔽掉了操作系统上对于文件的不同处理。

关于文件的常见基本操作有:

  • 打开文件:创建文件或打开文件载体(磁盘)中已有的文件
  • 关闭文件:类似free,释放掉内存中与文件有关的动态资源
  • 读取文件:数据由文件载体(磁盘)到内存
  • 写入文件:数据由内存到文件载体(磁盘)

fopen:打开或创建文件

fopen的原型为:

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

它的两个参数:

  • filename:需要打开或者创建的文件的文件名
  • mode:相关属性,如只读、只写、是否新建等

它的返回值,是一个指向FILE结构体的指针。FILE结构体,就是C库函数对文件的抽象封装,里面记录了文件各种信息。不过我们不用了解FILE内部的细节,因为我们不会直接操作FILE结构体,而是通过FILE*指针以及各种C库函数去间接操作FILE结构体。

以下代码,可以创建一个文件,并往其中写入字符串:

#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[])
{
    FILE* pFile = fopen("mytest.txt", "w");
    char szBuff[] = "helloworld";

    fwrite(szBuff, 1, strlen(szBuff), pFile);
    fclose(pFile);
    return 0;
}

fopen中的mode参数

fopen中的mode参数是一个字符串,可以是以下情况的选择:

  • r:只读方式打开,且文件必须已经存在
  • w:以只写方式创建文件,如果文件已经存在,会先删除原有文件的内容
  • a:以附加方式打开文件,不会删除原有文件内容,而是默认将内容写在文件的末尾
  • r+:读写方式
  • w+:读写方式
  • a+:附加及都方式

fclose:关闭文件

fclose类似free的作用,告之C库函数可以关闭已经打开的文件,并回收相关资源。

    if (pFile != NULL)
    {
        fclose(pFile);
        pFile = NULL;
    }

原文地址:https://www.cnblogs.com/shellmad/p/11695710.html

时间: 2024-10-29 10:04:14

C零基础视频-47-C语言操作文件的相关文章

C零基础视频-28-C标准库中常见的字符串操作函数

目录 字符串的特殊性 字符串比较 获取字符串长度 复制字符串 连接字符串 字符串的特殊性 字符串不是基本数据类型.因此,像操作基本数据类型那样操作,可能会失败: #include <stdio.h> int main(int argc, char* argv[]) { char* szHello = "Hello"; char chAry[] = "Hello"; printf("%s, %s\r\n", szHello, chAry

零基础快速学习新语言的方法总结

"Do you want to spend the rest of your life selling sugared water or do you want a chance to change the world?"                                                                                                               -  Steve P.(aul) Jobs 学

C++教程 零基础如何学习C语言!

学习一门技术不是所想的很简单的一回事,学习C语言同样也不是一件简单的事!学好C语言,你想在短时间内学好,肯定是不可能的,但是也不需要你花个十年八年才嫩恶搞精通.今天小编就针对0基础的学员推荐给你们基本书籍以及技巧! 一.要读就读好书,否则不如不读 所有初学者面临的第一个问题便是:如何选择教材.好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素.不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择. 大名鼎鼎的谭浩强教授出了一本<C语言程序设计>,据说发行量

C零基础视频-45-内存的分区:全局区、栈区、堆

目录 为什么程序的内存有分区 程序运行时的内存分区 堆内存 不久的将来,我们要开始学习在C中动态申请和释放内存.在学习它们之前,我们先学习程序内存的分区,为掌握和理解动态申请.释放内存做好基础铺垫. 为什么程序的内存有分区 一般而言,我们的住房会分成多个区域(卧室.厨房.阳台.卫生间等),不同区域有不同的功能. 运行时,程序分区的道理也是一样的,它方便操作系统管理程序,内存的不同区域,功能不同. 程序运行时的内存分区 作为初学者,我们简单认识下,程序有全局区.栈区和堆区即可. 全局区:在main

C零基础视频-32-指针铺垫知识:计算机分级结构

目录 计算机的体系结构 什么是内存 指针 计算机的体系结构 冯诺依曼体系结构 哈佛体系结构 CPU是计算的核心,用于解析机器码和执行指令.CPU的数据处理能力非常快,但是(寄存器的)存储空间非常有限. 内存的数据传输速度适中(与CPU.硬盘比),存储空间适中: 硬盘数据传输速度慢,存储空间大. CPU可以(通过总线)直接操作内存,这样的能力体现在CPU指令上.实际上,计算机的绝大多数功能,都是通过CPU操作内存直接体现的. 其他的显示器.硬盘.打印机等是"外设". 因此,CPU如何定位

C零基础视频-36-指针相关的运算

目录 比较大小 指针的加减法 使用指针遍历数组 比较大小 同类型的指针是可以比较大小的,不同类型的指针不能比较大小: #include <stdio.h> int main(int argc, char* argv[]) { int nValue1 = 0; int nValue2 = 0; int* p1 = &nValue1; int* p2 = &nValue2; printf("p1: %p\r\n", p1); printf("p2: %

C零基础视频-27-字符串

目录 什么是字符串 C语言中的字符串 字符数组与字符串的比较 什么是字符串 之前我们已经学过单个字符的文字型数据(char).同时了解过字符串. 在C语言中,字符串用双引号包围. #include <stdio.h> int main(int argc, char* argv[]) { printf("Hello"); return 0; } 字符串不是C语言中的基本数据类型.在我们之后的学习中可以看到,它是根据约定存储多个char数据的一种方式. C语言中的字符串 为了方

C零基础视频-39-结构体的定义与使用

目录 为什么要使用结构体 结构体的定义与使用 结构体的定义 定义结构体变量 引用结构体中的成员 为什么要使用结构体 生活中的事物,往往有多种属性,我们为了记录和表示他们,需要围绕一个事物,记录多中数据. 如一只宠物狗,他可能有:姓名.颜色.体重. 我们可以使用三个不同的变量记录它: #include <stdio.h> int main(int argc, char* argv[]) { char szName[20] = { "旺财" }; char szColor[20

C零基础视频-37-指针数组与数组指针

目录 指针数组 数组指针 指针数组 指针数组是数组,即一个数组中,每个元素都是指针. #include <stdio.h> int main(int argc, char* argv[]) { int nValue1 = 1; int nValue2 = 2; int nValue3 = 3; int * nArray[3] = { &nValue1, &nValue2, &nValue3 }; char* sz1 = "hello"; char*