当前位置: 首页 > news >正文

无锡高端网站建设咨询武汉网站seo推广

无锡高端网站建设咨询,武汉网站seo推广,水果网站策划书,可以玩的网页游戏该文章上一篇:C/C文件操作(细节满满,part1)_仍有未知等待探索的博客-CSDN博客 个人主页:仍有未知等待探索_C语言疑难,数据结构,小项目-CSDN博客 专题分栏:C语言疑难_仍有未知等待探索的博客-CSDN博客 目录 …

该文章上一篇:C/C++文件操作(细节满满,part1)_仍有未知等待探索的博客-CSDN博客

个人主页:仍有未知等待探索_C语言疑难,数据结构,小项目-CSDN博客

专题分栏:C语言疑难_仍有未知等待探索的博客-CSDN博客

目录

 

一、引言

二、文件的顺序

1、输入流和输出流

2、fputc

1.功能

2. 参数

3.用法

4.注意 

3、fgetc

1.功能 

2.参数

3.用法

4、fputs 

1、功能 

2、参数

3、用法

5、fgets 

​编辑 1、功能 

2、参数

3、用法

4、注意 

6、fprintf

1、功能 

2、参数

3、用法 

7、fscanf 

1、功能

2、参数

3、 用法

8、fwrite

​编辑

1、功能

2、参数

3、用法

4、注意 

9、fread 

1、功能

2、参数

3、用法

4、注意 

三、文件的随机读写

1、fseek

2、ftell 

3、rewind 

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

五、文件读取结束的标志

1、文本文件读取结束标志

2、二进制文件读取结束标志

六、文件缓冲区


 

一、引言

通过上篇文章,已经了解了什么是文件打开和关闭文件的操作流的概念等。

如果对于上述的内容感到有点陌生了,不妨去看一看,文章链接在开头。

这篇文章的内容将会包含写文件的基本操作。

文件的顺序读写:是每次从第一个字符开始读和写。

文件的随机读写:是每次可以从任意一个位置读和写。

二、文件的顺序

适用文件功能函数名适用于
文本文件字符输入函数fgetc所有输入流
文本文件字符输出函数fputc所有输出流
文本文件文本行输入函数fgets所有输入流
文本文件文本行输出函数fputs所有输出流
文本文件格式化输入函数fscanf所有输入流
文本文件格式化输出函数fprintf所有输出流
二进制文件二进制输入fread文件
二进制文件二进制输出fwrite文件

1、输入流和输出流

流相当于是一个过渡的过程。怎么判上述函数是输入流还是输出流呢?

我们可以站在内存的视角来看,如果是数据流向内存,我们就可以看作是输入流。反之,则是输出流。

就以fgetc和fputc为例:

2、fputc

1.功能

将一个字符character写进stream流中。

2. 参数

character:字符(字符的本质就是ASCII码值,是整数)。

stream:文件指针。

3.用法

#include<stdio.h>
int main()
{//以‘只写’的方式打开文件FILE* pf = fopen("test.txt", "w");if (pf == NULL){perror("fopen");return 0;}//处理//输入for (int i = 'a'; i <= 'z'; i++)fputc(i, pf);//关闭文件fclose(pf);pf = NULL;return 0;
}

4.注意 

用什么方式打开文件就只能完成该功能。就比如说,以‘只写’的方式打开文件,就不能进行读取操作。

如果对于打开方式模糊了,请点击下面链接,查看上一篇的内容:

C/C++文件操作(细节满满,part1)_仍有未知等待探索的博客-CSDN博客

3、fgetc

1.功能 

 从stream流中获取数据。

2.参数

文件指针类型的stream流。

3.用法

如果获取失败,函数将返回EOF

//以‘只读’的方式打开文件FILE* pf = fopen("test.txt", "r");if (pf == NULL){perror("fopen");return 0;}//处理//输出int ch;while((ch=fgetc(pf))!=EOF){printf("%c ",ch);}//关闭文件fclose(pf);pf = NULL;return 0;
}

4、fputs 

1、功能 

将一个字符串写入流中。

2、参数

str:需要写入文件的参数。

stream:文件流。

3、用法

如果没有‘\n’的话,他会把数据输入在一行。 

如果把文件指针pf换成stdout的话,程序会把数据打印在屏幕上。

#include<stdio.h>
int main()
{//以‘只写’的方式打开文件FILE* pf = fopen("test.txt", "w");if (pf == NULL){perror("fopen");return 0;}//处理fputs("abcd", pf);//不换行写法fputs("abcd\n", pf);//换行写法fputs("abcd", stdout);//将数据打印在屏幕上//关闭文件fclose(pf);pf = NULL;return 0;
}

5、fgets 

 1、功能 

从流中获取字符串。

2、参数

str:字符串。

num:读取的个数。

stream:文件流。

3、用法

如果获取失败,函数将返回EOF

#include<stdio.h>
int main()
{//以‘只读’的方式打开文件FILE* pf = fopen("test.txt", "r");if (pf == NULL){perror("fopen");return 0;}//处理char str[20];fgets(str, 10, pf);printf("%s", str);//关闭文件fclose(pf);pf = NULL;return 0;
}

4、注意 

  1. 函数最多只会读取一行的数据。
  2. 当数据足够多时,参数为num,函数只会读取num-1个数据。

6、fprintf

1、功能 

将格式化数据写入文件流中。

2、参数

通过将fprintf和printf的参数相比较,会发现,fprintf的参数就比printf的参数多了一个文件指针。 

3、用法 

#include<stdio.h>
struct S
{float f;char ch;int n;
};
int main()
{struct S s = { 4.14f,'w',1 };//以‘只 写’的方式打开文件FILE* pf = fopen("test.txt", "w");if (pf == NULL){perror("fopen");return 0;}//处理printf("%f %c %d\n", s.f, s.ch, s.n);fprintf(pf,"%f %c %d\n", s.f, s.ch, s.n);//关闭文件fclose(pf);pf = NULL;return 0;
}

7、fscanf 

1、功能

从流中读取数据。

2、参数

fscanf和scanf的参数差不多,多了一个文件流stream。

3、 用法

#include<stdio.h>
struct S
{float f;char ch;int n;
};
int main()
{struct S s = { 4.14f,'r',1 };FILE* pf = fopen("test.txt", "r");if (pf == NULL){perror("fopen");return 0;}//处理fscanf(pf, "%f %c %d", &(s.f), &(s.ch), &(s.n));printf("%f %c %d", s.f, s.ch, s.n);//关闭文件fclose(pf);pf = NULL;return 0;
}

8、fwrite

1、功能

将ptr中的数据写入流中,大小为size,个数为count。

2、参数

ptr:指向要写入文件流中的数据的指针。

size:每个数据的大小。

count:数据个数。

stream:要写入的文件流中。

3、用法

#include<stdio.h>
int main()
{FILE* pf = fopen("test.txt", "wb");//abcdefif (pf == NULL){perror("fopen");return 0;}//处理char str[] = "abcd";fwrite(str, sizeof(char), sizeof(str) / sizeof(str[0]), pf);//关闭文件fclose(pf);pf = NULL;return 0;
}

4、注意 

文件的打开方式要和函数匹配,要用二进制的写的方式

9、fread 

1、功能

从文件流中读取数据。

2、参数

ptr:指向文件流中的数据所要存到的位置的指针。

size:每个数据的大小。

count:数据个数。

stream:文件流。

3、用法

#include<stdio.h>
int main()
{FILE* pf = fopen("test.txt", "rb");//abcdefif (pf == NULL){perror("fopen");return 0;}//处理char str[20];fread(str, sizeof(char), sizeof(str) / sizeof(str[0]), pf);printf("%s", str);//关闭文件fclose(pf);pf = NULL;return 0;
}

4、注意 

文件的打开方式要和函数匹配,要用二进制的读的方式

三、文件的随机读写

根据文件指针的位置和偏移量来确定文件指针的位置。

文件指针当前位置
SEEK_SETBeginning of file
SEEK_ENDCurrent position of the file pointer
SEEK_CUREnd of file

1、fseek

 功能是改变文件指针的位置。

#include<stdio.h>
int main()
{FILE* pf = fopen("test.txt", "r");//abcdefif (pf == NULL){perror("fopen");return 0;}//处理int ch;ch = fgetc(pf);//aprintf("%c\n", ch);ch = fgetc(pf);//bprintf("%c\n", ch);ch = fgetc(pf);//cprintf("%c\n", ch);fseek(pf, -1, SEEK_CUR);ch = fgetc(pf);printf("%c\n", ch);//c//关闭文件fclose(pf);pf = NULL;return 0;
}

2、ftell 

功能是返回文件当前指针的偏移量。

#include<stdio.h>
int main()
{FILE* pf = fopen("test.txt", "r");//abcdefif (pf == NULL){perror("fopen");return 0;}//处理int ch;ch = fgetc(pf);//aprintf("%c\n", ch);ch = fgetc(pf);//bprintf("%c\n", ch);ch = fgetc(pf);//cprintf("%c\n", ch);int pos = ftell(pf);printf("%d", pos);//关闭文件fclose(pf);pf = NULL;return 0;
}

3、rewind 

功能是将文件指针返回起始位置。

#include<stdio.h>
int main()
{FILE* pf = fopen("test.txt", "r");//abcdefif (pf == NULL){perror("fopen");return 0;}//处理int ch;ch = fgetc(pf);//ach = fgetc(pf);//bch = fgetc(pf);//cint pos = ftell(pf);printf("%d\n", pos);rewind(pf);pos = ftell(pf);printf("%d", pos);//关闭文件fclose(pf);pf = NULL;return 0;
}

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

根据数据的存储形式,文件可以分为二进制文件和文本文件。

数据在文件中以二进制存储,就是二进制文件。

数据在文件中以ASCII码值存储,就是文本文件。

五、文件读取结束的标志

在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束。

1、文本文件读取结束标志

fgetc——判断是否为EOF

fgets——判断是否为NULL

2、二进制文件读取结束标志

fread——判断返回值是否小于实际要读的个数。

六、文件缓冲区

谢谢大家支持! 

http://www.hkea.cn/news/86723/

相关文章:

  • 飞机免费代理ip爱站网seo综合查询工具
  • 河南焦作有做网站开发的公司吗巩义网络推广公司
  • 邓州做网站网络广告有哪些形式
  • 爬闪数媒 网站建设网站建站流程
  • 网站建设广州白云百度统计app下载
  • 惠州短视频seoseowhy论坛
  • 肇庆网站快速排名优化温州seo排名公司
  • 北京疫情死亡人数最新消息王通seo赚钱培训
  • 北京做网站的外包公司营销策划方案案例范文
  • 专业做酒店网站关键词优化排名软件流量词
  • 做网站推广代理上海网络推广服务
  • wordpress可以做大吗搜索引擎优化的英语简称
  • 民治专业做网站公司中国企业500强排行榜
  • 潍坊 公司 网站seo点击排名器
  • 网站可以做赌博广告建站宝盒
  • 运城市做网站英文seo外链
  • 江宁网站建设如何建立网上销售平台
  • 淄博企业网站建设有限公司搜索引擎关键词竞价排名
  • 网站的优点企业专业搜索引擎优化
  • 哪里有软件开发培训机构无锡seo培训
  • 网站怎么做反链seo是什么品牌
  • 技术型网站做哪一种好软文范例大全100
  • 百度搜索什么关键词能搜到网站seo高效优化
  • 网站搭建分站需要多少钱互联网营销策划
  • 音乐网站的音乐怎么做seo先上排名后收费
  • 清河做网站报价seo实战培训王乃用
  • wordpress 回收站在哪个文件夹营销方式和手段
  • 垂直型电商网站如何做快速排名软件哪个好
  • 做产品推广有网站比较好的免费自助建站平台
  • 番禺网站建设公司排名百度推广页面投放