文件的随机读写和文本文件(二进制文件)
创始人
2024-06-02 01:50:12

目录

一、文件的随机读写

(一)fseek

1. fseek函数介绍

2. 举例

 (二)ftell

1. ftell函数介绍

2. 举例

(三)rewind

1. rewind函数介绍

2. 举例

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

(一)基本概念

(二)一个数据在内存中是怎么存储的

(三)举例(数值型数据)

(四)举例(字符型数据)


一、文件的随机读写

(一)fseek

1. fseek函数介绍

2. 举例

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{//打开文件FILE* pf = fopen("C:\\Users\\86173\\Desktop\\data.txt", "r");if (pf == NULL){perror("fopen");return 1;}写文件---输出操作//fputc('a', pf);//fputc('b', pf);//fputc('c', pf);//fputc('d', pf);//fputc('e', pf);//fputc('f', pf);//fputc('g', pf);//随机读int ch = fgetc(pf);printf("%c\n", ch);//ach = fgetc(pf);printf("%c\n", ch);//bfseek(pf, 2, SEEK_CUR);ch = fgetc(pf);printf("%c\n", ch);//e//关闭文件fclose(pf);pf = NULL;return 0;
}

 (二)ftell

1. ftell函数介绍

2. 举例

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{FILE* pf =fopen("C:\\Users\\86173\\Desktop\\data.txt", "r");if (pf == NULL){perror("fopen");return 1;}//随机读int ch = fgetc(pf);printf("%c\n", ch);//along pos = ftell(pf);printf("%d\n", pos);//1ch = fgetc(pf);printf("%c\n", ch);//bpos = ftell(pf);printf("%d\n", pos);//2fclose(pf);pf = NULL;return 0;
}

(三)rewind

1. rewind函数介绍

void rewind( FILE *stream );//作用是让文件指针的位置回到文件的起始位置

2. 举例

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{FILE* pf =fopen("C:\\Users\\86173\\Desktop\\data.txt", "r");if (pf == NULL){perror("fopen");return 1;}//随机读int ch = fgetc(pf);printf("%c\n", ch);//along pos = ftell(pf);printf("%d\n", pos);//1ch = fgetc(pf);printf("%c\n", ch);//bpos = ftell(pf);printf("%d\n", pos);//2rewind(pf);pos = ftell(pf);printf("%d\n", pos);//0fclose(pf);pf = NULL;return 0;
}

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

(一)基本概念

  • 根据数据的组织形式,数据文件被称为文本文件或者二进制文件。
  • 数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是二进制文件。
  • 如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件

(二)一个数据在内存中是怎么存储的

  • 字符一律以ASCII形式存储,数值型数据既可以用ASCII形式存储,也可以使用二进制形式存储。
  • 如有整数20000,如果以ASCII码的形式输出到磁盘,则磁盘中占用5个字节(每个字符一个字节),而二进制形式输出,则在磁盘上只占4个字节 

  

(三)举例(数值型数据)

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{int a = 20000;FILE* pf = fopen("C:\\Users\\86173\\Desktop\\data.txt", "wb");fwrite(&a, 4, 1, pf);//以二进制形式写到文件中fclose(pf);pf = NULL;return 0;}

 

 

(四)举例(字符型数据)

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{char ch = 'A';FILE* pf = fopen("C:\\Users\\86173\\Desktop\\data.txt", "wb");fwrite(&ch, sizeof(ch), 1, pf);//以二进制形式写到文件中fclose(pf);pf = NULL;return 0;}

 

 

 

 

相关内容

热门资讯

美国2025年12月消费者价格... (来源:财闻) 高于市场预期。 美国劳工部13日发布...
骚扰泄私愤,查处护安宁   近日,济宁市公安局任城分局接到辖区群众李某报案称,2025年9月至2025年12月期间,持续遭到...
Upexi 宣布 3600 万... (来源:吴说)吴说获悉,Upexi 宣布与 Hivemind Capital Partners 签署...
原创 中... 当韩国总统李在明踏上中国的领土与中方签下多份文件,外界都以为中韩关系将迎来“破冰”之际,一个细节却让...
最新或2023(历届)职工生育... 生育保险待遇申领流程  符合国家计划生育政策的职工参加生育保险并连续缴纳生育保险费满6个月,次月起享...