0
点赞
收藏
分享

微信扫一扫

C嘎嘎~~[谈谈C++的一些优化]

妖妖妈 2023-05-27 阅读 85

目录

一、文件概述

(1)文件定义

(2)文件命名

(3)文件分类

① 按照文件的内容划分

② 按照文件的组织形式划分

③ 按照文件的存储形式划分

④ 按照文件的存储介质划分

(4)文件存取方式

(5)文件系统 

二、文件的打开和关闭函数

(1)文件打开函数

①  库函数 exit() 的具体说明

② 文件使用中各字符的含义

③ 文件的使用方式说明

(2)文件关闭函数

(3)标准设备文件的打开和关闭 

① 文件的打开与关闭

② 文件的打开(fopen 函数)

③ 文件的关闭(fclose 函数)

三、文件的读/写函数

(1)文件尾测试函数

(2)写字符函数 fputc()

(3)读字符函数 fgetc()

① fputc 函数(putc 函数)

② fgetc 函数(getc 函数)

③ feof 函数

(4)写字符串函数 fputs()

(5)读字符串函数 fgets()

(6)写数据块函数 fwrite()

(7)读数据块函数 fread()

(8)格式化写函数 fprintf()

(9)格式化读函数 fscanf()

四、文件的定位函数

(1)文件指针复位函数

① rewind 函数

(2)文件随机定位函数

(3)文件随机定位函数



一、文件概述


(1)文件定义


(2)文件命名


(3)文件分类

① 按照文件的内容划分

② 按照文件的组织形式划分

③ 按照文件的存储形式划分

④ 按照文件的存储介质划分


(4)文件存取方式


(5)文件系统 



二、文件的打开和关闭函数

(1)文件打开函数

①  库函数 exit() 的具体说明

② 文件使用中各字符的含义

字符含义
r (read)
w (write)
a (append)追加
t (text)文本文件(可省略不写)
b (binary)二进制文件
+读和写

③ 文件的使用方式说明

文本类型字符使用方式说明
文本文件"r"只读以只读方式打开一个已经存在的文本文件,只允许读取数据,不允许写入数据
"r+"读/写以读/写方式打开一个已经存在的文本文件,允许读取和写入数据
"w"只写以只写方式打开一个文本文件,只允许写入数据,不允许读取数据:
① 若文件已经存在,则删去原文件的所有内容,然后写入数据
② 若文件不存在,则自动创建一个新文件后写入数据
"w+"读/写以读/写方式打开一个文本文件,允许读取和写入数据:
① 若文件已经存在,则删去原文件的所有内容,然后写入数据
② 若文件不存在,则自动创建一个新文件后写入数据
"a"追加以追加的方式打开一个已经存在的文本文件,只允许写入数据并追加到原文件尾
"a+"读/写以读/写方式打开一个文本文件,允许读取数据,也允许写入数据到文件尾:
若文件不存在,则自动创建一个新文件
二进制文件"rb"只读以只读方式打开一个已经存在的二进制文件,只允许读取数据,不允许写入数据
"rb+"读/写以读/写方式打开一个已经存在的二进制文件,允许读取和写入数据
"wb"只写以只写方式打开一个二进制文件,只允许写入数据,不允许读取数据:
① 若文件已经存在,则删去原文件的所有内容,然后写入数据
② 若文件不存在,则自动创建一个新文件后写入数据
"wb+"读/写以读/写方式打开一个二进制文件,允许读取和写入数据:
① 若文件已经存在,则删去原文件的所有内容,然后写入数据
② 若文件不存在,则自动创建一个新文件后写入数据
"ab"追加以追加的方式打开一个已经存在的二进制文件,只允许写入数据并追加到原文件尾
"ab+"读/写以读/写方式打开一个二进制文件,允许读取数据,也允许写入数据到文件尾:
若文件不存在,则自动创建一个新文件

(2)文件关闭函数


(3)标准设备文件的打开和关闭 

① 文件的打开与关闭

② 文件的打开(fopen 函数)

字符处理方式指定文件不存在文件存在
r只读出错正常
w只写建立新文件原内容丢失
a追加建立新文件在原内容后追加
r+/w+读写出错正常

③ 文件的关闭(fclose 函数)



三、文件的读/写函数

(1)文件尾测试函数


(2)写字符函数 fputc()


(3)读字符函数 fgetc()

① fputc 函数(putc 函数)

② fgetc 函数(getc 函数)

③ feof 函数

/* 示例:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个 “#” 为止 */
#include <stdio.h>
#include <stdlid.h>
void main()
{
  FILE *fp;
  char ch , filename[10];
  scanf("%s", filename);
  if((fp=fopen(filename, "w"))==NULL)
     { 
        printf("cannot open file\n");
        exit(0); 
     }   /* 终止程序 */
  ch=getchar();   /* 接收执行scanf时最后输入的回车符 */
  ch=getchar();   /* 第一个输入的字符被赋给变量ch */
  while(ch!='#')
     { 
        fputc(ch, fp);   /* 字符被写入filename表示的文件中 */
        putchar(ch);    /* 字符被输出到显示器 */
        ch=getchar();
      }
   putchar(10);   /* 向屏幕输出一个换行符 */
   fclose(fp);
}   /* 关闭文件 */

(4)写字符串函数 fputs()


(5)读字符串函数 fgets()

/* 示例:从键盘读入字符串存入文件,再从文件读回显示 */
#include<stdio.h>
void main()
{
  FILE *fp;
  char string[81];
  if((fp=fopen("file.txt", "w"))==NULL)
     { 
        printf("cann't open file"); exit(0); 
     }
  while(strlen(gets(string))>0)
     { 
        fputs(string, fp);
        fputs("\n", fp); 
     }
  fclose(fp);
  if((fp=fopen("file.txt", "r"))==NULL)
     { 
        printf("cann't open file"); exit(0); 
     }
  while(fgets(string, 81, fp)!=NULL)
     fputs(string, stdout);
  fclose(fp);
}

(6)写数据块函数 fwrite()


(7)读数据块函数 fread()


(8)格式化写函数 fprintf()


(9)格式化读函数 fscanf()



四、文件的定位函数

(1)文件指针复位函数

① rewind 函数

/* 示例:对一个磁盘文件进行显示和复制两次操作 */
#include <stdio.h>
void main()
{
  FILE *fp1,
  *fp2;
  fp1=fopen("c:\\c\\user\\ch4.c", "r");
  fp2=fopen("d:\\c\\user\\ch41.c", "w");
  while(!feof(fp1)) putchar(fgetc(fp1));
  rewind(fp1);
  while(!feof(fp1)) putc(fgetc(fp1), fp2);
  fclose(fp1);  fclose(fp2);
}

(2)文件随机定位函数


(3)文件随机定位函数

举报

相关推荐

0 条评论