首页 > 其他分享 >42 C语言文件操作

42 C语言文件操作

时间:2022-10-20 15:05:09浏览次数:47  
标签:文件 数据 42 C语言 内存 FILE 打开 ASCII

42 C语言文件操作_后缀




01 什么是文件


文件有不同的类型,在程序设计中,主要用到两种文件:

(1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容时程序代码。

(2)数据文件。文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中输出到磁盘(或其他外部设备)的数据,或在程序运行过程中供读入的数据。

为了简化用户对输入输出设备的操作,使用户不必去区分各种输入输出设备之间的区别,操作系统把各种设备都统一作为文件来处理。

文件是程序设计中一个重要的概念。所谓“文件”一般指存储在外部介质上数据的集合。

输入输出是数据传送的过程,数据如流水一样从一处流向另一处,因此常将输入输出形象地称为流,即数据流。


02 文件名


一个文件要有一个唯一的文件标识,以便用户识别和引用。文件标识包括3部分:

(1)文件路径;
(2)文件名主干;
(3)文件后缀。


03 文件的分类


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

数据在内存中是以二进制形式存储的,如果不加转换地输出到外存,就是二进制文件,可以认为它就是存储在内存的数据的映象,所以也称之为映像文件。

如果要求在外存上以ASCII代码形式存储,则需要在存储前进行转换。

ASCII文件又称文本文件,每一个字节放一个字符的ASCII代码。


04 文件缓冲区


ANSI C标准采用“缓冲文件系统”处理数据文件,所谓缓冲文件系统是指系统自动地在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区。

05 文件类型指针
缓冲文件系统中,关键的概念是“文件类型 指针”,简称“文件指针”。每个被使用的文件都在内存中开辟一个相应的文件信息区,用来存放文件的有关信息。这些信息是保存在一个结构体变量中的。


   05 函数介绍


1.fopen():文件打开操作

头文件:stdio.h

函数定义:FILE *fopen(char *pname, char *mode)

函数说明:pname是文件名,mode是打开文件的方式

mode:"r" 打开一个已经存在的文件文本,文件不存在则出错

42 C语言文件操作_打开文件_02


以“r+”的方式打开一个文件,会清空文件的原始内容,重新写入数据


返回值:正常返回:FILE *一个指向文件在内存中的文件信息的开头

异常返回:NULL,表示打开操作不成功


打开文件的作用是:

(1)分配给打开文件一个FILE 类型的文件结构体变量,并将有关信息填入文件结构体变量;

(2)开辟一个缓冲区;

(3)调用操作系统提供的打开文件或建立新文件功能,打开或建立指定文件;


2. fclose():文件关闭

函数定义:int fclose(FILE *fp);

函数说明:fp是一个以打开的文件的文件指针

返回值:

正常返回:0

异常返回:EOF,表示文件在关闭时发生错误



标签:文件,数据,42,C语言,内存,FILE,打开,ASCII
From: https://blog.51cto.com/u_15837129/5780092

相关文章

  • 奇迹客户端服务端目录PLAYER文件怎么改​
    奇迹客户端服务端目录PLAYER文件怎么改​我是艾西,很多想开服的小伙伴对游戏技术肯定是感兴趣的,今天跟大家聊聊Player目录文件代表什么意思怎么修改:​这一期就是大家很关心的......
  • HTML快速入门和HTML标签-文件标签
    HTML快速入门快速入门:语法:1.html文档后缀名.html或者.htm2.标签分为1.围堵标签:有开始标签和结束标签。如<html> </html>2.自闭和标......
  • 【C语言进阶】一.数据的储存
    通过之前的学习,你已经入门了C语言,那我们就来尝试些小BOSS吧(一)数据类型介绍类型的意义:1.使用这个类型开辟内存空间的大小(大小决定了使用范围)。2.如何看待内存空间的视角整型......
  • Linux du命令:统计目录或文件所占磁盘空间大小
    du是统计目录或文件所占磁盘空间大小的命令。需要注意的是,使用"ls-r"命令是可以看到文件的大小的。但是大家会发现,在使用"ls-r"命令査看目录大小时,目录的大小多数是4KB......
  • 第一个C语言项目
        1.创建一个项目2.创建一个源文件3.写代码4.编译代码+运行#include<stdio.h>//这是一个头文件,是一个标准输入输出intmain(){ //int是一个整形函数,......
  • CF1742E Scuza题解
    CF1742EScuza题意简述\(t\)组数据,对于每组数据:有\(n\)级台阶,每级台阶比上一级高\(a_i\)米。有\(q\)次询问,每次询问给出一个腿长\(k\),问在每次跨上的高度不大......
  • Intellj Idea中在提交代码时如何忽略文件和目录
    1. Settings→Editor→FileTypes;2.找到Ignorefilesandfolders,添加自己需要过滤的内容(忽略文件和目录)a:末尾添加内容,如:*.imlb:直接按我们常用的配置覆盖已有内容......
  • 实验2 C语言控制语句应用编程
    实验一#include<math.h>#include<time.h>#defineN5intmain(){intnumber;inti;srand(time(0));for(i=0;i<N;++i){number=......
  • 断点maven-断点续传-大文件断点上传
    ​一、概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载。在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了。一般断点下载时才用到......
  • input 文件上传 formdata
    需求背景后端给定接口传xlsx文件参数:后台需要的参数格式:formdata需要  token    1saveEditIn(e){2th......