【C语言】文件的顺序读写

时间:2023-02-06 22:55:52

????write in front????   

????大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流????

????2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~2022博客之星Top63~作者周榜84﹣作者总榜704~阿里云专家博主 & 阿里云星级博主~掘金优秀创作者⇿InfoQ创作者⇿51CTO红人⇿全网访问量50w+????

????本文由 謓泽 原创 如需转载还请通知⚠

????个人主页-​謓泽51Ctop的博客​????

????欢迎各位→点赞???? + 收藏⭐️ + 留言????

????系列专栏-​謓泽51Ctop的博客_【C语言】从0~1_51CTO博客​????
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本????

【C语言】文件的顺序读写

 ????????????文件的顺序读写????????????

????文件的顺序读写:实际上就是怎么样才能把我所写的数据一一的写在文件当中。

这里再次说下????"流"????的概念,虽说在上面已经说过了。"防止大家忘记,说的就是你张三"

"流":是指信息从外部输入设备(如键盘)向计算机内部(如内存)输入和从内存向外部输出设备(显示器)输出的过程。这种输入输出的过程被形象的比喻为"流"。

【C语言】文件的顺序读写

 在写代码的时候,我先介绍下????文件的顺序读写????的函数的一些使用功能。 

????fgetc() → 字符输入函数???? 

⚡️函数的声明方式如下⚡️

int fgetc ( FILE * stream );

【C语言】文件的顺序读写

从流中获取字符↓

  • 返回指定流的内部文件位置指示器当前指向的字符。然后,内部文件位置指示符被推进到下一个字符。
  • 如果调用时流位于文件结束位置,则函数返回EOF并设置流的文件结束指示符(feof)。
  • 如果发生读错误,该函数返回EOF并设置流的错误指示符(ferror)。

参数↓

  • 指向标识输入流的FILE对象的指针。

返回值↓

  • 如果成功,则返回字符读取(提升为int值)。返回类型为int,以适应特殊值EOF,表示失败。
  • 如果位置指示符位于文件结束位置,函数返回EOF并设置流的EOF指示符(feof)。
  • 如果发生了其他的读取错误,函数也会返回EOF,但会设置它的错误指示符(ferror)。

✨适用于输入流当中✨

????fputc() → 字符输出函数???? 

⚡️函数的声明方式如下⚡️

int fputc ( int character, FILE * stream );

【C语言】文件的顺序读写

将字符写入流↓

  • 将一个字符写入流并使位置指示器向前移动。字符被写入到流的内部位置指示器所指示的位置,然后该位置指示器自动前进1。

参数↓

  • character:要写的字符的 int 提升。写入时,该值在内部转换为 unsigned char????
  • stream:指向标识输出流的FILE对象的指针。

返回值↓

  • 如果成功,则返回所写的字符。如果发生写错误,则返回EOF并设置错误指示器(ferror)

✨适用于输出流当中✨

​​​​​​​???????? fputc() 代码示例​​​​​​​????????

那么这里我们就用 fputc() 函数开始写入文件在 test.txt 文件上写入"c"

代码示例如下↓ 

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
FILE* pf = fopen("test.txt", "w");
//返回值判断
if (pf == NULL)
{
perror("fopen");
return 1;//返回
}
//写文件
fputc('c', pf);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}

【C语言】文件的顺序读写

张三同学:那么我们看看是否写入了数据( ̄▽ ̄)"

【C语言】文件的顺序读写

【C语言】文件的顺序读写​编辑

从上述图中可以看出成功写入了数据????'c'????,当然我们要注意下即使我们只要以????'w'????的形式去打开的时候,即使原来文件当中有数据内容也会被清空。

张三:真的是太神奇了(-/*˃̶ᗜ˂̶/*-)

这里注意下是可以进行多个的假设我们要 cpp 的话,直接在加下就可以了。如下代码所示↓

fputc('c', pf);
fputc('p', pf);
fputc('p', pf);

【C语言】文件的顺序读写

特别注意一点假设我们是这样的↓

fputc('1001', pf);【C语言】文件的顺序读写

它这里写入文件数据当中会是都是按照最后一位的数字来的,也就是数字1。

????"三个流"???? 

在这里再说说"流"的概念 FILE*,实际上C语言只要运行起来就默认打开了三个流↓

  1. stdin → 标准输入流 → 键盘
  2. stdout → 标准输入流 → 屏幕
  3. stderr → 标准错误流 → 屏幕

那这不就可以配合我们上面所说的函数去使用了吗。

张三:对啊,毕竟它们实际上也是 FILE* 啊(●'◡'●)

那么,假设我需要用 fputc() 在屏幕上给输出信息,就用 ????stdout???? 不就可以了吗。

代码示例如下↓

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
FILE* pf = fopen("test.txt", "w");
//返回值判断
if (pf == NULL)
{
perror("fopen");
return 1;//返回
}
//写文件
fputc('c', stdout);
fputc('p', stdout);
fputc('p', stdout);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}

运行结果如下????

【C语言】文件的顺序读写

【C语言】文件的顺序读写