【C初阶】文件操作管理

简介: 【C初阶】文件操作管理

1.使用文件的意义

用于处理大型数据,长久性的存储数据、

2.文件的概念

文件:电脑硬盘上的存储数据的文件

分类

按照内容:程序文件、数据文件

按照形式:文本文件、二进制文件

文件名:文件的唯一标识,一般按照路径+文件名主体+后缀组成

// · 表示当前路径

//··表示上一级路径

3.流

流:是一种便于程序员对于各种输入输出设备的不同交互。

流的具体定义:Pointer to a FILE object that identifies an input stream.

标准流:属于流的一种,stdin(标准输入)、stdout(标准输出)、stderr(标准错误)

FILE:是C语言内置结构体,用来在程序运行时候在内存开辟一块空间存放文件结构体变量,对里面各种参数进行记录以便来维护文件。

FILE*:便于维护文件结构体的指针。

4.文件的打开与关闭

文件打开函数:fopen

LINK

文件关闭函数:fclose

LINK

5.文件的读写

文件可以用程序进行读写操作,为了便于文件读写,C语言为我们提供了一系列库函数:

eg:fgetc与fputc

LINK

LINK

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
  //创建test文件
  FILE* pf = fopen("test.txt", "w");
  fclose(pf);
  pf = NULL;
  
  //将10086写到test文件中
  FILE* pwrite = fopen("test.txt", "w");
  fputc('1', pwrite);
  fputc('0', pwrite);
  fputc('0', pwrite);
  fputc('8', pwrite);
  fputc('6', pwrite);
  fclose(pwrite);
  pwrite = NULL;
  //将test文件内容读到屏幕上
  FILE* pread = fopen("test.txt", "r");
  fprintf(stdout,"%c", fgetc(pread));
  fprintf(stdout,"%c", fgetc(pread));
  fprintf(stdout,"%c", fgetc(pread));
  fprintf(stdout,"%c", fgetc(pread));
  fprintf(stdout,"%c", fgetc(pread));
  fclose(pread);
  pread = NULL;
  return 0;
}

为了便于文件读写,C还提供了可以在文件中移动光标位置的库函数:fseek LINK

因为这个函数涉及到一些偏移量的问题,C也提供了一个专门计算偏移量的库函数:

ftell LINK

6.文件读写结束的判定

feof函数LINK

ferror函数LINK

rewindLINK

7.文件缓冲区

#include <stdio.h>
#include <windows.h>
//VS2019 WIN11环境测试
int main()
{
FILE*pf = fopen("test.txt", "w");
fputs("abcdef", pf);//先将代码放在输出缓冲区
printf("睡眠10秒-已经写数据了,打开test.txt⽂件,发现⽂件没有内容\n");
Sleep(10000);
printf("刷新缓冲区\n");
fflush(pf);//刷新缓冲区时,才将输出缓冲区的数据写到⽂件(磁盘)
//注:fflush 在⾼版本的VS上不能使⽤了
printf("再睡眠10秒-此时,再次打开test.txt⽂件,⽂件有内容了\n");
Sleep(10000);
fclose(pf);
//注:fclose在关闭⽂件的时候,也会刷新缓冲区
pf = NULL;
return 0;

EOF

相关文章
|
11月前
|
存储 C语言 C++
文件操作合集 - C语言
文件操作合集 - C语言
29 0
|
11月前
|
编译器 数据库 C语言
C语言文件操作(一文带你吃透文件各种操作)
有很多学校都是不会讲文件操作这块知识的,但是考试还要考。文件操作在平常中也是有所应用的。这篇文章详细讲述对于文件的各种操作,对于考试和平常引用是完全足够啦!
91 0
|
23天前
|
C语言
【C语言篇】文件操作(下篇)
因为有缓冲区的存在,C语⾔在操作⽂件的时候,需要做刷新缓冲区或者在⽂件操作结束的时候关闭⽂ 件。如果不做,可能导致读写⽂件的问题。
|
23天前
|
存储 程序员 C语言
【C语言篇】文件操作(上篇)
在程序设计中,我们⼀般谈的⽂件有两种:程序⽂件、数据⽂件(从⽂件功能的⻆度来分类的)。
|
3月前
|
存储 C语言 C++
【C语言基础】:文件操作详解(前篇:准备知识)
【C语言基础】:文件操作详解(前篇:准备知识)
|
4月前
|
C语言
C语言——通讯录实现(增删查改+动态管理+文件操作)
C语言——通讯录实现(增删查改+动态管理+文件操作)
|
11月前
|
存储 安全 C语言
C语言基础教学(文件操作)
C语言基础教学(文件操作)
96 0
|
11月前
|
存储 程序员 C语言
如何使用C语言进行读写文件(二)
如何使用C语言进行读写文件(二)
46 0
|
11月前
|
人工智能 编译器 C语言
如何使用C语言进行读写文件(一)
如何使用C语言进行读写文件(一)
90 0
|
存储
【文件操作的重难点详解】(二)
【文件操作的重难点详解】(二)
58 0